mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
btrfs: return real error after lookup failure in btrfs_ioctl_default_subvol()
If we fail to lookup the dir item, we are always returning -ENOENT but that may not be the reason for the failure, as btrfs_lookup_dir_item() can return many different errors, such as -EIO or -ENOMEM for example. Fix this by returning the real error, and also fixup the silly error message, including the id of the directory and the error. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
00608e3416
commit
dad845f192
|
|
@ -2829,9 +2829,13 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
|
|||
if (IS_ERR_OR_NULL(di)) {
|
||||
btrfs_release_path(path);
|
||||
btrfs_end_transaction(trans);
|
||||
if (di)
|
||||
ret = PTR_ERR(di);
|
||||
else
|
||||
ret = -ENOENT;
|
||||
btrfs_err(fs_info,
|
||||
"Umm, you don't have the default diritem, this isn't going to work");
|
||||
ret = -ENOENT;
|
||||
"could not find default diritem for dir %llu: %d",
|
||||
dir_id, ret);
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user