diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index b07b19acdbb1433671180ff730db24895216a15d..c21cc408556d2c31c535e4be9e2e96336aab2c2d 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -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; }