On Wed, 2017-05-31 at 20:37 +0800, Ming Lei wrote: > > + /* wait until queue is unquiesced */ > + wait_event_cmd(q->quiesce_wq, !blk_queue_quiesced(q), > + may_sleep ? > + srcu_read_unlock(&hctx->queue_rq_srcu, *srcu_idx) : > + rcu_read_unlock(), > + may_sleep ? > + *srcu_idx = srcu_read_lock(&hctx->queue_rq_srcu) : > + rcu_read_lock()); > + > if (q->elevator) > goto insert; What I see is that in this patch a new waitqueue has been introduced (quiesce_wq) and also that an explanation of why you think this new waitqueue is needed is missing completely. Why is it that you think that the synchronize_scru() and synchronize_rcu() calls in blk_mq_quiesce_queue() are not sufficient? If this new waitqueue is not needed, please remove that waitqueue again. Bart.