On Mon, 2018-01-08 at 11:15 -0800, Tejun Heo wrote: > +static void hctx_unlock(struct blk_mq_hw_ctx *hctx, int srcu_idx) > +{ > + if (!(hctx->flags & BLK_MQ_F_BLOCKING)) > + rcu_read_unlock(); > + else > + srcu_read_unlock(hctx->queue_rq_srcu, srcu_idx); > +} > + > +static void hctx_lock(struct blk_mq_hw_ctx *hctx, int *srcu_idx) > +{ > + if (!(hctx->flags & BLK_MQ_F_BLOCKING)) > + rcu_read_lock(); > + else > + *srcu_idx = srcu_read_lock(hctx->queue_rq_srcu); > +} A minor comment: please consider to reorder these two functions such that the lock function appears first and the unlock function second. Anyway: Reviewed-by: Bart Van Assche <bart.vanassche@xxxxxxx>