blk-mq: directly poll requests
authorKeith Busch <kbusch@kernel.org>
Fri, 31 Mar 2023 18:00:56 +0000 (11:00 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 4 Apr 2023 22:11:47 +0000 (16:11 -0600)
commit38a8c4d1d45006841f0643f4cb29b5e50758837c
tree05cfa4ff5174c7d5297aadbe11699f8266778deb
parent24ab70d83784a807c9ddff939ea762ef19bd4ffd
blk-mq: directly poll requests

Polling needs a bio with a valid bi_bdev, but neither of those are
guaranteed for polled driver requests. Make request based polling
directly use blk-mq's polling function instead.

When executing a request from a polled hctx, we know the request's
cookie, and that it's from a live blk-mq queue that supports polling, so
we can safely skip everything that bio_poll provides.

Cc: stable@kernel.org
Reported-by: Martin Belanger <Martin.Belanger@dell.com>
Reported-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Tested-by: Daniel Wagner <dwagner@suse.de>
Revieded-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Link: https://lore.kernel.org/r/20230331180056.1155862-1-kbusch@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c