lib/nvme: Do not retry aborts if ctrlr is failed.

Fixes #2022

If queued aborts are present when trying to fail a ctrlr
using spdk_nvme_ctrlr_fail(), then the abort command completion
will attempt to retry one of the queued aborts.
This eventually leads to a segfault that can be avoided by not
retrying any queued aborts.

Change-Id: I897dcb8809e16af8bdd39d4381ab531e1cc29822
Signed-off-by: Vasuki Manikarnike <vasuki.manikarnike@hpe.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8585
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Vasuki Manikarnike 2021-07-01 22:33:27 +00:00 committed by Jim Harris
parent e6464f32fa
commit a82e8478ea

View File

@ -572,7 +572,7 @@ nvme_ctrlr_retry_queued_abort(struct spdk_nvme_ctrlr *ctrlr)
struct nvme_request *next, *tmp;
int rc;
if (ctrlr->is_resetting || ctrlr->is_destructed) {
if (ctrlr->is_resetting || ctrlr->is_destructed || ctrlr->is_failed) {
return;
}