Commit e85b6814 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

bdev/nvme: bdev_nvme_io_complete() also checks retry_count for -ENXIO



We should be able to disable retry also for bdev_nvme_io_complete().

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I47c3e7c3b9a6a136bd7070feac6e710645944387
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20702


Reviewed-by: default avatarRichael <richael.zhuang@arm.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
parent efb48abc
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -1408,6 +1408,7 @@ bdev_nvme_io_complete(struct nvme_bdev_io *bio, int rc)
		io_status = SPDK_BDEV_IO_STATUS_NOMEM;
		break;
	case -ENXIO:
		if (g_opts.bdev_retry_count == -1 || bio->retry_count < g_opts.bdev_retry_count) {
			nbdev_ch = spdk_io_channel_get_ctx(spdk_bdev_io_get_io_channel(bdev_io));

			bdev_nvme_clear_current_io_path(nbdev_ch);
@@ -1417,6 +1418,7 @@ bdev_nvme_io_complete(struct nvme_bdev_io *bio, int rc)
				bdev_nvme_queue_retry_io(nbdev_ch, bio, 1000ULL);
				return;
			}
		}

	/* fallthrough */
	default:
+8 −0
Original line number Diff line number Diff line
@@ -5106,6 +5106,8 @@ test_retry_io_if_ctrlr_is_resetting(void)
	struct nvme_qpair *nvme_qpair;
	int rc;

	g_opts.bdev_retry_count = 1;

	memset(attached_names, 0, sizeof(char *) * STRING_SIZE);
	ut_init_trid(&path.trid);

@@ -5251,6 +5253,8 @@ test_retry_io_if_ctrlr_is_resetting(void)
	poll_threads();

	CU_ASSERT(nvme_bdev_ctrlr_get_by_name("nvme0") == NULL);

	g_opts.bdev_retry_count = 0;
}

static void
@@ -5569,6 +5573,8 @@ test_fail_path(void)
	 * - Then ctrlr_loss_timeout_sec comes and the ctrlr is deleted.
	 */

	g_opts.bdev_retry_count = 1;

	memset(attached_names, 0, sizeof(char *) * STRING_SIZE);
	ut_init_trid(&path.trid);

@@ -5715,6 +5721,8 @@ test_fail_path(void)
	CU_ASSERT(nvme_ctrlr_get_by_name("nvme0") == NULL);

	free(bdev_io);

	g_opts.bdev_retry_count = 0;
}

static void