summaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 0afdc1bfd7cb..078c6f3b7e53 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7998,7 +7998,7 @@ bool md_write_start(struct mddev *mddev, struct bio *bi)
7998 if (mddev->safemode == 1) 7998 if (mddev->safemode == 1)
7999 mddev->safemode = 0; 7999 mddev->safemode = 0;
8000 /* sync_checkers is always 0 when writes_pending is in per-cpu mode */ 8000 /* sync_checkers is always 0 when writes_pending is in per-cpu mode */
8001 if (mddev->in_sync || !mddev->sync_checkers) { 8001 if (mddev->in_sync || mddev->sync_checkers) {
8002 spin_lock(&mddev->lock); 8002 spin_lock(&mddev->lock);
8003 if (mddev->in_sync) { 8003 if (mddev->in_sync) {
8004 mddev->in_sync = 0; 8004 mddev->in_sync = 0;
@@ -8658,6 +8658,9 @@ void md_check_recovery(struct mddev *mddev)
8658 if (mddev_trylock(mddev)) { 8658 if (mddev_trylock(mddev)) {
8659 int spares = 0; 8659 int spares = 0;
8660 8660
8661 if (!mddev->external && mddev->safemode == 1)
8662 mddev->safemode = 0;
8663
8661 if (mddev->ro) { 8664 if (mddev->ro) {
8662 struct md_rdev *rdev; 8665 struct md_rdev *rdev;
8663 if (!mddev->external && mddev->in_sync) 8666 if (!mddev->external && mddev->in_sync)