Merge tag 'rproc-v4.9' of git://github.com/andersson/remoteproc
[cascardo/linux.git] / fs / efivarfs / super.c
index 688ccc1..d7a7c53 100644 (file)
@@ -157,12 +157,14 @@ static int efivarfs_callback(efi_char16_t *name16, efi_guid_t vendor,
                goto fail_inode;
        }
 
+       efivar_entry_size(entry, &size);
+       err = efivar_entry_add(entry, &efivarfs_list);
+       if (err)
+               goto fail_inode;
+
        /* copied by the above to local storage in the dentry. */
        kfree(name);
 
-       efivar_entry_size(entry, &size);
-       efivar_entry_add(entry, &efivarfs_list);
-
        inode_lock(inode);
        inode->i_private = entry;
        i_size_write(inode, size + sizeof(entry->var.Attributes));
@@ -182,7 +184,10 @@ fail:
 
 static int efivarfs_destroy(struct efivar_entry *entry, void *data)
 {
-       efivar_entry_remove(entry);
+       int err = efivar_entry_remove(entry);
+
+       if (err)
+               return err;
        kfree(entry);
        return 0;
 }