]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
md: stop write should stop journal reclaim
authorShaohua Li <shli@fb.com>
Mon, 21 Nov 2016 18:29:19 +0000 (10:29 -0800)
committerShaohua Li <shli@fb.com>
Thu, 24 Nov 2016 03:30:25 +0000 (19:30 -0800)
__md_stop_writes currently doesn't stop raid5-cache reclaim thread. It's
possible the reclaim thread is still running and doing write, which
doesn't match what __md_stop_writes should do. The extra ->quiesce()
call should not harm any raid types. For raid5-cache, this will
guarantee we reclaim all caches before we update superblock.

Signed-off-by: Shaohua Li <shli@fb.com>
Reviewed-by: NeilBrown <neilb@suse.de>
Cc: Song Liu <songliubraving@fb.com>
drivers/md/md.c

index 297757a0ec0c21276dd3e45ac136e2b8721e97a8..c7894fbbd8e5e0e984c7a9e7d0c07866ecfe8c33 100644 (file)
@@ -5517,6 +5517,10 @@ static void __md_stop_writes(struct mddev *mddev)
 
        del_timer_sync(&mddev->safemode_timer);
 
+       if (mddev->pers && mddev->pers->quiesce) {
+               mddev->pers->quiesce(mddev, 1);
+               mddev->pers->quiesce(mddev, 0);
+       }
        bitmap_flush(mddev);
 
        if (mddev->ro == 0 &&