On Sun, Mar 18, 2012 at 01:18:21PM +0000, Bart Van Assche wrote: > All queued requests must be processed eventually. Hence make sure > that blk_drain_queue() drains the queue even if the queue is in the > stopped state. This patch makes it safe to invoke blk_cleanup_queue() > on a stopped queue. ... > diff --git a/block/blk-core.c b/block/blk-core.c > index 3a78b00..bdcec86 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -300,10 +300,8 @@ EXPORT_SYMBOL(blk_sync_queue); > */ > void __blk_run_queue(struct request_queue *q) > { > - if (unlikely(blk_queue_stopped(q))) > - return; > - > - q->request_fn(q); > + if (!blk_queue_stopped(q) || blk_queue_dead(q)) > + q->request_fn(q); So, this allows calling request_fn for dead && stopped queue. Have you seen something which requires this? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html