diff options
Diffstat (limited to 'drivers/md/md.c')
| -rw-r--r-- | drivers/md/md.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index d5ab4493c8be..f6c46109b071 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
| @@ -3942,17 +3942,13 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len) | |||
| 3942 | break; | 3942 | break; |
| 3943 | case clear: | 3943 | case clear: |
| 3944 | /* stopping an active array */ | 3944 | /* stopping an active array */ |
| 3945 | if (atomic_read(&mddev->openers) > 0) | ||
| 3946 | return -EBUSY; | ||
| 3947 | err = do_md_stop(mddev, 0, NULL); | 3945 | err = do_md_stop(mddev, 0, NULL); |
| 3948 | break; | 3946 | break; |
| 3949 | case inactive: | 3947 | case inactive: |
| 3950 | /* stopping an active array */ | 3948 | /* stopping an active array */ |
| 3951 | if (mddev->pers) { | 3949 | if (mddev->pers) |
| 3952 | if (atomic_read(&mddev->openers) > 0) | ||
| 3953 | return -EBUSY; | ||
| 3954 | err = do_md_stop(mddev, 2, NULL); | 3950 | err = do_md_stop(mddev, 2, NULL); |
| 3955 | } else | 3951 | else |
| 3956 | err = 0; /* already inactive */ | 3952 | err = 0; /* already inactive */ |
| 3957 | break; | 3953 | break; |
| 3958 | case suspended: | 3954 | case suspended: |
