Messages in this thread | | | Date | Mon, 13 Feb 2012 18:27:42 -0500 | From | Vivek Goyal <> | Subject | Re: [PATCH block/for-linus] block: blk-throttle should be drained regardless of q->elevator |
| |
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@kernel.org> > Reported-by: Vivek Goyal <vgoyal@redhat.com>
Thanks Tejun for fixing this. Looks good to me. Just a minor nit below.
Acked-by: Vivek Goyal <vgoyal@redhat.com>
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);
| |