From: Shaohua Li <shli@xxxxxx> md-cluster receive thread calls .quiesce too, let it hold mddev lock. Cc: NeilBrown <neilb@xxxxxxxx> Cc: Guoqing Jiang <gqjiang@xxxxxxxx> Signed-off-by: Shaohua Li <shli@xxxxxx> --- drivers/md/md-cluster.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index 41573f1..f420060 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c @@ -567,11 +567,13 @@ static void recv_daemon(struct md_thread *thread) struct cluster_msg msg; int ret; + mddev_lock_nointr(thread->mddev); mutex_lock(&cinfo->recv_mutex); /*get CR on Message*/ if (dlm_lock_sync(message_lockres, DLM_LOCK_CR)) { pr_err("md/raid1:failed to get CR on MESSAGE\n"); mutex_unlock(&cinfo->recv_mutex); + mddev_unlock(thread->mddev); return; } @@ -599,6 +601,7 @@ static void recv_daemon(struct md_thread *thread) if (unlikely(ret != 0)) pr_info("unlock msg failed return %d\n", ret); mutex_unlock(&cinfo->recv_mutex); + mddev_unlock(thread->mddev); } /* lock_token() -- 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