block: Fix elv_support_iosched()
authorDamien Le Moal <damien.lemoal@wdc.com>
Tue, 8 Oct 2019 22:39:54 +0000 (07:39 +0900)
committerJens Axboe <axboe@kernel.dk>
Mon, 14 Oct 2019 19:54:09 +0000 (13:54 -0600)
commit7a7c5e715e722c86d602c56a09e77f000364e263
tree4b074360edf8311721c51b4e3d3fd0ac3e8e0f21
parent7adf4eaf60f3d8c3584bed51fe7066d4dfc2cbe1
block: Fix elv_support_iosched()

A BIO based request queue does not have a tag_set, which prevent testing
for the flag BLK_MQ_F_NO_SCHED indicating that the queue does not
require an elevator. This leads to an incorrect initialization of a
default elevator in some cases such as BIO based null_blk
(queue_mode == BIO) with zoned mode enabled as the default elevator in
this case is mq-deadline instead of "none".

Fix this by testing for a NULL queue mq_ops field which indicates that
the queue is BIO based and should not have an elevator.

Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Bob Liu <bob.liu@oracle.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/elevator.c