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-Url: https://git.stricted.de/?a=commitdiff_plain;h=336c3d8ce771608815b65bcfa27a17a83b297328;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.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 fa212348c4c9..c66333d8e48d 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);