From 552898ec173ee6e47a71318b0740f5e66ba33ff8 Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Thu, 17 Oct 2019 13:14:06 -0700 Subject: [PATCH] nvme_qpair: fail the ctrlr only for errors on admin qpair. We shouldn't always fail the whole controller if we get a failure on an individual qpair. Change-Id: Id0c90af83e5231593a895be66e7a7de48939e240 Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471660 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Alexey Marchuk Reviewed-by: Jim Harris --- lib/nvme/nvme_qpair.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/nvme/nvme_qpair.c b/lib/nvme/nvme_qpair.c index 1c9c4bd86..1cab0b218 100644 --- a/lib/nvme/nvme_qpair.c +++ b/lib/nvme/nvme_qpair.c @@ -471,7 +471,9 @@ spdk_nvme_qpair_process_completions(struct spdk_nvme_qpair *qpair, uint32_t max_ ret = nvme_transport_qpair_process_completions(qpair, max_completions); if (ret < 0) { SPDK_ERRLOG("CQ error, abort requests after transport retry counter exceeded\n"); - nvme_ctrlr_fail(qpair->ctrlr, false); + if (nvme_qpair_is_admin_queue(qpair)) { + nvme_ctrlr_fail(qpair->ctrlr, false); + } } qpair->in_completion_context = 0; if (qpair->delete_after_completion_context) {