|
@@ -4259,6 +4259,13 @@ action_store(struct mddev *mddev, const char *page, size_t len)
|
|
|
set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery);
|
|
|
set_bit(MD_RECOVERY_SYNC, &mddev->recovery);
|
|
|
}
|
|
|
+ if (mddev->ro == 2) {
|
|
|
+ /* A write to sync_action is enough to justify
|
|
|
+ * canceling read-auto mode
|
|
|
+ */
|
|
|
+ mddev->ro = 0;
|
|
|
+ md_wakeup_thread(mddev->sync_thread);
|
|
|
+ }
|
|
|
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
|
|
md_wakeup_thread(mddev->thread);
|
|
|
sysfs_notify_dirent_safe(mddev->sysfs_action);
|