Loading fs/btrfs/ioctl.c +9 −8 Original line number Diff line number Diff line Loading @@ -2186,19 +2186,20 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp) struct btrfs_ioctl_defrag_range_args *range; int ret; if (btrfs_root_readonly(root)) return -EROFS; ret = mnt_want_write_file(file); if (ret) return ret; if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, 1)) { pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); mnt_drop_write_file(file); return -EINVAL; } ret = mnt_want_write_file(file); if (ret) { atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); return ret; if (btrfs_root_readonly(root)) { ret = -EROFS; goto out; } switch (inode->i_mode & S_IFMT) { Loading Loading @@ -2250,8 +2251,8 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp) ret = -EINVAL; } out: mnt_drop_write_file(file); atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); mnt_drop_write_file(file); return ret; } Loading Loading
fs/btrfs/ioctl.c +9 −8 Original line number Diff line number Diff line Loading @@ -2186,19 +2186,20 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp) struct btrfs_ioctl_defrag_range_args *range; int ret; if (btrfs_root_readonly(root)) return -EROFS; ret = mnt_want_write_file(file); if (ret) return ret; if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, 1)) { pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); mnt_drop_write_file(file); return -EINVAL; } ret = mnt_want_write_file(file); if (ret) { atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); return ret; if (btrfs_root_readonly(root)) { ret = -EROFS; goto out; } switch (inode->i_mode & S_IFMT) { Loading Loading @@ -2250,8 +2251,8 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp) ret = -EINVAL; } out: mnt_drop_write_file(file); atomic_set(&root->fs_info->mutually_exclusive_operation_running, 0); mnt_drop_write_file(file); return ret; } Loading