On Fri, 2017-04-28 at 10:00 +0800, Ming Lei wrote: > On Thu, Apr 27, 2017 at 08:54:32AM -0700, Bart Van Assche wrote: > > void blk_mq_stop_hw_queue(struct blk_mq_hw_ctx *hctx) > > { > > - cancel_work(&hctx->run_work); > > - cancel_delayed_work(&hctx->delay_work); > > + cancel_work_sync(&hctx->run_work); > > + cancel_delayed_work_sync(&hctx->delay_work); > > Could you explain it a bit why we need the sync version? Because the purpose of this patch is to make blk_mq_quiesce_queue() wait for all .queue_rq() calls. > So I suggest to unity both .run_work and .dealyed_run_work > into one work, just as what Jens did in the following link: > > http://marc.info/?t=149183989800010&r=1&w=2 That should be done after this patch is upstream otherwise this patch won't apply to the stable trees. Bart.