diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-12-26 23:04:25 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-12-26 23:04:25 -0500 |
| commit | f0cf008f6bbf5710ba583821687602ec52997a36 (patch) | |
| tree | d62074714cfee4dbf4587e206fc0809bc9558e3a | |
| parent | 3bef22eed98b53cfb3962884f14068251a5dd3f0 (diff) | |
| parent | 312045eef985b61d74c28047ecd8eca6719d9516 (diff) | |
Merge tag 'md/4.4-rc6-fix' of git://neil.brown.name/md
Pull md bugfix from Neil Brown:
"One more md fix for 4.4-rc
Fix a regression which causes reshape to not start properly sometimes"
* tag 'md/4.4-rc6-fix' of git://neil.brown.name/md:
md: remove check for MD_RECOVERY_NEEDED in action_store.
| -rw-r--r-- | drivers/md/md.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index dbedc58d8c00..61aacab424cf 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
| @@ -4326,8 +4326,7 @@ action_store(struct mddev *mddev, const char *page, size_t len) | |||
| 4326 | } | 4326 | } |
| 4327 | mddev_unlock(mddev); | 4327 | mddev_unlock(mddev); |
| 4328 | } | 4328 | } |
| 4329 | } else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || | 4329 | } else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) |
| 4330 | test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) | ||
| 4331 | return -EBUSY; | 4330 | return -EBUSY; |
| 4332 | else if (cmd_match(page, "resync")) | 4331 | else if (cmd_match(page, "resync")) |
| 4333 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); | 4332 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); |
| @@ -4340,8 +4339,12 @@ action_store(struct mddev *mddev, const char *page, size_t len) | |||
| 4340 | return -EINVAL; | 4339 | return -EINVAL; |
| 4341 | err = mddev_lock(mddev); | 4340 | err = mddev_lock(mddev); |
| 4342 | if (!err) { | 4341 | if (!err) { |
| 4343 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); | 4342 | if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) |
| 4344 | err = mddev->pers->start_reshape(mddev); | 4343 | err = -EBUSY; |
| 4344 | else { | ||
| 4345 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); | ||
| 4346 | err = mddev->pers->start_reshape(mddev); | ||
| 4347 | } | ||
| 4345 | mddev_unlock(mddev); | 4348 | mddev_unlock(mddev); |
| 4346 | } | 4349 | } |
| 4347 | if (err) | 4350 | if (err) |
