diff options
| author | Ilya Dryomov <idryomov@gmail.com> | 2013-01-20 08:57:57 -0500 |
|---|---|---|
| committer | Ilya Dryomov <idryomov@gmail.com> | 2013-01-20 09:21:18 -0500 |
| commit | 2c0c9da02a2c4289350da6e54202a86602c0f926 (patch) | |
| tree | f2a7cc3827ec7fb948d6b54fb18b751a36f6684a | |
| parent | ed0fb78fb6aa294a719f8f5654fdff0ec8bc00bc (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>
| -rw-r--r-- | fs/btrfs/ioctl.c | 8 |
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); |
