Re: [PATCH block/for-linus] block: blk-throttle should be drainedregardless of q->elevator

From: Vivek Goyal
Date: Mon Feb 13 2012 - 18:27:54 EST


On Mon, Feb 13, 2012 at 02:52:48PM -0800, Tejun Heo wrote:
> Currently, blk_cleanup_queue() doesn't call elv_drain_elevator() if
> q->elevator doesn't exist; however, bio based drivers don't have
> elevator initialized but can still use blk-throttle. This patch moves
> q->elevator test inside blk_drain_queue() such that only
> elv_drain_elevator() is skipped if !q->elevator.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Reported-by: Vivek Goyal <vgoyal@xxxxxxxxxx>

Thanks Tejun for fixing this. Looks good to me. Just a minor nit below.

Acked-by: Vivek Goyal <vgoyal@xxxxxxxxxx>

Vivek

[..]
> @@ -428,13 +434,8 @@ void blk_cleanup_queue(struct request_qu
> spin_unlock_irq(lock);
> mutex_unlock(&q->sysfs_lock);
>
> - /*
> - * Drain all requests queued before DEAD marking. The caller might
> - * be trying to tear down @q before its elevator is initialized, in
> - * which case we don't want to call into draining.
> - */
> - if (q->elevator)
> - blk_drain_queue(q, true);
> + /* drain all requests queued before DEAD marking */

We have already marked the queue DEAD before we start draining the queue.
May be we need to fix the comment.

> + blk_drain_queue(q, true);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/