bdev/nvme: Relocate abort_retry_ios() to gather related functions

Relocate abort_retry_ios() in a file to gather all retry functions
in the same place.

I/O retry is very complex and an improvement will be added in the
following patches. This will make the following patches easier.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I84751bd078db4aef753dcc533320cee9aa09c9b2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15957
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Shuhei Matsumoto 2023-01-12 13:08:36 +09:00 committed by Jim Harris
parent 21160add26
commit 47e4c931e8

View File

@ -684,18 +684,7 @@ __bdev_nvme_io_complete(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_status s
}
}
static void
bdev_nvme_abort_retry_ios(struct nvme_bdev_channel *nbdev_ch)
{
struct spdk_bdev_io *bdev_io, *tmp_io;
TAILQ_FOREACH_SAFE(bdev_io, &nbdev_ch->retry_io_list, module_link, tmp_io) {
TAILQ_REMOVE(&nbdev_ch->retry_io_list, bdev_io, module_link);
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_ABORTED, NULL);
}
spdk_poller_unregister(&nbdev_ch->retry_io_poller);
}
static void bdev_nvme_abort_retry_ios(struct nvme_bdev_channel *nbdev_ch);
static void
bdev_nvme_destroy_bdev_channel_cb(void *io_device, void *ctx_buf)
@ -1020,6 +1009,19 @@ bdev_nvme_queue_retry_io(struct nvme_bdev_channel *nbdev_ch,
delay_ms * 1000ULL);
}
static void
bdev_nvme_abort_retry_ios(struct nvme_bdev_channel *nbdev_ch)
{
struct spdk_bdev_io *bdev_io, *tmp_io;
TAILQ_FOREACH_SAFE(bdev_io, &nbdev_ch->retry_io_list, module_link, tmp_io) {
TAILQ_REMOVE(&nbdev_ch->retry_io_list, bdev_io, module_link);
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_ABORTED, NULL);
}
spdk_poller_unregister(&nbdev_ch->retry_io_poller);
}
static void
bdev_nvme_update_nvme_error_stat(struct spdk_bdev_io *bdev_io, const struct spdk_nvme_cpl *cpl)
{