]> www.infradead.org Git - users/jedix/linux-maple.git/commit
nvme/pci: No special case for queue busy on IO
authorKeith Busch <keith.busch@intel.com>
Fri, 10 Feb 2017 23:15:52 +0000 (18:15 -0500)
committerAshok Vairavan <ashok.vairavan@oracle.com>
Wed, 19 Jul 2017 20:00:31 +0000 (13:00 -0700)
commitb6e4fdc02a9bae655b7fb0858d14195f9245355d
tree35a64f008de1c81f9310e6e2825c62a1d763c218
parentd13dbe780195f033eb925bd76cb25ccae6243581
nvme/pci: No special case for queue busy on IO

This driver previously required we have a special check for IO submitted
to nvme IO queues that are temporarily suspended. That is no longer
necessary since blk-mq provides a quiesce, so any IO that actually gets
submitted to such a queue must be ended since the queue isn't going to
start back up.

This is fixing a condition where we have fewer IO queues after a
controller reset. This may happen if the number of CPU's has changed,
or controller firmware update changed the queue count, for example.

While it may be possible to complete the IO on a different queue, the
block layer does not provide a way to resubmit a request on a different
hardware context once the request has entered the queue. We don't want
these requests to be stuck indefinitely either, so ending them in error
is our only option at the moment.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 9ef3932e250f8e2e11ffbc0c1f28b3ba5dc40cd6)

Orabug: 26486098

UEK4 blk-mq module doesn't have the quescing capability. So the requests
should fail if a namespace is dead.

Signed-off-by: Ashok Vairavan <ashok.vairavan@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/nvme/host/pci.c