Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d00c2d9c authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba
Browse files

Btrfs: do not overwrite error return value in the balance ioctl



If the call to btrfs_balance() failed we would overwrite the error
returned to user space with -EFAULT if the call to copy_to_user() failed
as well. Fix that by calling copy_to_user() only if btrfs_balance()
returned success or was canceled.

Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent d3a53286
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4781,7 +4781,7 @@ static long btrfs_ioctl_balance(struct file *file, void __user *arg)
	ret = btrfs_balance(fs_info, bctl, bargs);
	bctl = NULL;

	if (arg) {
	if ((ret == 0 || ret == -ECANCELED) && arg) {
		if (copy_to_user(arg, bargs, sizeof(*bargs)))
			ret = -EFAULT;
	}