Code like "drain |= q->nr_rqs[i]" might result in blk_drain_queue() to finish early if the expression at the RHS is a multiple of 256 since the drain variable is only eight bits wide. Avoid this by changing the type of the drain variable from bool into unsigned.
Cc: James Bottomley <[email protected]> Cc: Mike Christie <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Tejun Heo <[email protected]> Cc: Chanho Min <[email protected]> Signed-off-by: Bart Van Assche <[email protected]> --- block/blk-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c index a33870b..ef2e045 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -362,7 +362,7 @@ void blk_drain_queue(struct request_queue *q, bool drain_all) int i; while (true) { - bool drain = false; + unsigned drain = 0; spin_lock_irq(q->queue_lock); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

