[Oracular/Unstable][PATCH 1/4] UBUNTU: SAUCE: nvme-tcp: Do not terminate commands when in RESETTING
Alexander Mikhalitsyn
aleksandr.mikhalitsyn at canonical.com
Fri Jun 21 15:44:39 UTC 2024
From: Hannes Reinecke <hare at suse.de>
When the error recovery started it will terminate all commands
anyway, so we should just return BLK_EH_RESET_TIMER for a
command timeout.
Signed-off-by: Hannes Reinecke <hare at suse.de>
Acked-by: Daniel Wagner <dwagner at suse.de>
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn at canonical.com>
Tested-by: Julian Pelizäus <julian.pelizaeus at canonical.com>
---
drivers/nvme/host/tcp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 8b5e4327fe83..b0a9db63c2f9 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -2454,6 +2454,14 @@ static enum blk_eh_timer_return nvme_tcp_timeout(struct request *rq)
rq->tag, nvme_cid(rq), pdu->hdr.type, cmd->common.opcode,
nvme_fabrics_opcode_str(qid, cmd), qid);
+ /*
+ * If the error recovery is started all commands will be
+ * aborted anyway, and nothing is to be done here.
+ */
+ if (nvme_ctrl_state(ctrl) == NVME_CTRL_RESETTING &&
+ work_pending(&to_tcp_ctrl(ctrl)->err_work))
+ return BLK_EH_RESET_TIMER;
+
if (nvme_ctrl_state(ctrl) != NVME_CTRL_LIVE) {
/*
* If we are resetting, connecting or deleting we should
--
2.34.1
More information about the kernel-team
mailing list