From: Shaohua Li <shli@xxxxxx> .quiesce is called with mddev lock hold at most places. There are few exceptions. Calling .quesce without the lock hold could create races. For example, the .quesce of raid1 can't be recursively. The purpose of the patches is to fix a race in raid5-cache. The raid5-cache .quesce will write md superblock and should be called with mddev lock hold. Cc: NeilBrown <neilb@xxxxxxxx> Signed-off-by: Shaohua Li <shli@xxxxxx> --- drivers/md/md.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/md/md.c b/drivers/md/md.c index 2c3ab6f..0550445 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -7945,8 +7945,10 @@ void md_do_sync(struct md_thread *thread) * region. */ if (mddev->bitmap) { + mddev_lock_nointr(mddev); mddev->pers->quiesce(mddev, 1); mddev->pers->quiesce(mddev, 0); + mddev_unlock(mddev); } } -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html