Skip to content

Commit f0cf008

Browse files
committed
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.
2 parents 3bef22e + 312045e commit f0cf008

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

drivers/md/md.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4326,8 +4326,7 @@ action_store(struct mddev *mddev, const char *page, size_t len)
43264326
}
43274327
mddev_unlock(mddev);
43284328
}
4329-
} else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) ||
4330-
test_bit(MD_RECOVERY_NEEDED, &mddev->recovery))
4329+
} else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
43314330
return -EBUSY;
43324331
else if (cmd_match(page, "resync"))
43334332
clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
@@ -4340,8 +4339,12 @@ action_store(struct mddev *mddev, const char *page, size_t len)
43404339
return -EINVAL;
43414340
err = mddev_lock(mddev);
43424341
if (!err) {
4343-
clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
4344-
err = mddev->pers->start_reshape(mddev);
4342+
if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
4343+
err = -EBUSY;
4344+
else {
4345+
clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
4346+
err = mddev->pers->start_reshape(mddev);
4347+
}
43454348
mddev_unlock(mddev);
43464349
}
43474350
if (err)

0 commit comments

Comments
 (0)