On Mon, 2017-03-27 at 20:06 +0800, Ming Lei wrote:
> diff --git a/block/blk-core.c b/block/blk-core.c
> index ad388d5e309a..5e8963bc98d9 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -669,6 +669,15 @@ int blk_queue_enter(struct request_queue *q, bool nowait)
>               if (nowait)
>                       return -EBUSY;
>  
> +             /*
> +              * read pair of barrier in blk_mq_freeze_queue_start(),
> +              * we need to order reading __PERCPU_REF_DEAD flag of
> +              * .q_usage_counter and reading .mq_freeze_depth,
> +              * otherwise the following wait may never return if the
> +              * two reads are reordered.
> +              */
> +             smp_rmb();
> +
>               ret = wait_event_interruptible(q->mq_freeze_wq,
>                               !atomic_read(&q->mq_freeze_depth) ||
>                               blk_queue_dying(q));

Since patch 4/4 modifies the comment introduced by this patch, I would have
preferred that patches 2/4 and 4/4 would have been combined into a single
patch. Anyway:

Reviewed-by: Bart Van Assche <[email protected]>

Reply via email to