nvme-pci: fix timeout request state check
authorKeith Busch <kbusch@kernel.org>
Wed, 18 Jan 2023 16:44:16 +0000 (08:44 -0800)
committerChristoph Hellwig <hch@lst.de>
Thu, 19 Jan 2023 08:08:01 +0000 (09:08 +0100)
commit1c5842085851f786eba24a39ecd02650ad892064
tree352ee97926f7f9c8a347d8109fbbffdb7607b4b6
parentc0a4a1eafbd48e02829045bba3e6163c03037276
nvme-pci: fix timeout request state check

Polling the completion can progress the request state to IDLE, either
inline with the completion, or through softirq. Either way, the state
may not be COMPLETED, so don't check for that. We only care if the state
isn't IN_FLIGHT.

This is fixing an issue where the driver aborts an IO that we just
completed. Seeing the "aborting" message instead of "polled" is very
misleading as to where the timeout problem resides.

Fixes: bf392a5dc02a9b ("nvme-pci: Remove tag from process cq")
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/pci.c