aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2013-01-20 08:57:57 -0500
committerIlya Dryomov <idryomov@gmail.com>2013-01-20 09:21:18 -0500
commit2c0c9da02a2c4289350da6e54202a86602c0f926 (patch)
treef2a7cc3827ec7fb948d6b54fb18b751a36f6684a /fs
parented0fb78fb6aa294a719f8f5654fdff0ec8bc00bc (diff)
Btrfs: fix "mutually exclusive op is running" error code
The error code that is returned in response to starting a mutually exclusive operation when there is one already running got silently changed from EINVAL to EINPROGRESS by 5ac00add. Returning EINPROGRESS to, say, add_dev, when rm_dev is running is misleading. Furthermore, the operation itself may want to use EINPROGRESS for other purposes. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/ioctl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 77d8273e394c..259dd52d8785 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1340,7 +1340,7 @@ static noinline int btrfs_ioctl_resize(struct file *file,
1340 1)) { 1340 1)) {
1341 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); 1341 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n");
1342 mnt_drop_write_file(file); 1342 mnt_drop_write_file(file);
1343 return -EINPROGRESS; 1343 return -EINVAL;
1344 } 1344 }
1345 1345
1346 mutex_lock(&root->fs_info->volume_mutex); 1346 mutex_lock(&root->fs_info->volume_mutex);
@@ -2192,7 +2192,7 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp)
2192 if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, 2192 if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running,
2193 1)) { 2193 1)) {
2194 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); 2194 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n");
2195 return -EINPROGRESS; 2195 return -EINVAL;
2196 } 2196 }
2197 ret = mnt_want_write_file(file); 2197 ret = mnt_want_write_file(file);
2198 if (ret) { 2198 if (ret) {
@@ -2266,7 +2266,7 @@ static long btrfs_ioctl_add_dev(struct btrfs_root *root, void __user *arg)
2266 if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running, 2266 if (atomic_xchg(&root->fs_info->mutually_exclusive_operation_running,
2267 1)) { 2267 1)) {
2268 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); 2268 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n");
2269 return -EINPROGRESS; 2269 return -EINVAL;
2270 } 2270 }
2271 2271
2272 mutex_lock(&root->fs_info->volume_mutex); 2272 mutex_lock(&root->fs_info->volume_mutex);
@@ -2303,7 +2303,7 @@ static long btrfs_ioctl_rm_dev(struct file *file, void __user *arg)
2303 1)) { 2303 1)) {
2304 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n"); 2304 pr_info("btrfs: dev add/delete/balance/replace/resize operation in progress\n");
2305 mnt_drop_write_file(file); 2305 mnt_drop_write_file(file);
2306 return -EINPROGRESS; 2306 return -EINVAL;
2307 } 2307 }
2308 2308
2309 mutex_lock(&root->fs_info->volume_mutex); 2309 mutex_lock(&root->fs_info->volume_mutex);