From: Elias Oltmanns Date: Wed, 1 Oct 2008 14:02:33 +0000 (+0200) Subject: block: Fix blk_start_queueing() to not kick a stopped queue X-Git-Tag: v2.6.28-rc1~733^2~18 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=336c3d8ce771608815b65bcfa27a17a83b297328;p=linux-2.6-omap-h63xx.git block: Fix blk_start_queueing() to not kick a stopped queue blk_start_queueing() should act like the generic queue unplugging and kicking and ignore a stopped queue. Such a queue may not be run until after a call to blk_start_queue(). Signed-off-by: Elias Oltmanns Signed-off-by: Jens Axboe --- diff --git a/block/blk-core.c b/block/blk-core.c index fa212348c4c..c66333d8e48 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -890,9 +890,11 @@ EXPORT_SYMBOL(blk_get_request); */ void blk_start_queueing(struct request_queue *q) { - if (!blk_queue_plugged(q)) + if (!blk_queue_plugged(q)) { + if (unlikely(blk_queue_stopped(q))) + return; q->request_fn(q); - else + } else __generic_unplug_device(q); } EXPORT_SYMBOL(blk_start_queueing);