bdev/nvme: add __bdev_nvme_io_complete
This is just a simple wrapper for now around the calls to spdk_bdev_io_complete and its nvme status variant. Upcoming patch will add an spdk_trace_record to this function as well. This avoids having to litter spdk_trace_record calls in too many places. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Id2fb3aeb8b070ad6e09c1dfb9a30a61666a35688 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13993 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
81dfe157f3
commit
8bc1165edd
@ -657,6 +657,20 @@ bdev_nvme_create_bdev_channel_cb(void *io_device, void *ctx_buf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* If cpl != NULL, complete the bdev_io with nvme status based on 'cpl'.
|
||||
* If cpl == NULL, complete the bdev_io with bdev status based on 'status'.
|
||||
*/
|
||||
static inline void
|
||||
__bdev_nvme_io_complete(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_status status,
|
||||
const struct spdk_nvme_cpl *cpl)
|
||||
{
|
||||
if (cpl) {
|
||||
spdk_bdev_io_complete_nvme_status(bdev_io, cpl->cdw0, cpl->status.sct, cpl->status.sc);
|
||||
} else {
|
||||
spdk_bdev_io_complete(bdev_io, status);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_nvme_abort_retry_ios(struct nvme_bdev_channel *nbdev_ch)
|
||||
{
|
||||
@ -664,7 +678,7 @@ bdev_nvme_abort_retry_ios(struct nvme_bdev_channel *nbdev_ch)
|
||||
|
||||
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);
|
||||
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_ABORTED);
|
||||
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_ABORTED, NULL);
|
||||
}
|
||||
|
||||
spdk_poller_unregister(&nbdev_ch->retry_io_poller);
|
||||
@ -1065,7 +1079,7 @@ bdev_nvme_io_complete_nvme_status(struct nvme_bdev_io *bio,
|
||||
|
||||
complete:
|
||||
bio->retry_count = 0;
|
||||
spdk_bdev_io_complete_nvme_status(bdev_io, cpl->cdw0, cpl->status.sct, cpl->status.sc);
|
||||
__bdev_nvme_io_complete(bdev_io, 0, cpl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@ -1099,7 +1113,7 @@ bdev_nvme_io_complete(struct nvme_bdev_io *bio, int rc)
|
||||
}
|
||||
|
||||
bio->retry_count = 0;
|
||||
spdk_bdev_io_complete(bdev_io, io_status);
|
||||
__bdev_nvme_io_complete(bdev_io, io_status, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@ -1131,7 +1145,7 @@ bdev_nvme_admin_passthru_complete(struct nvme_bdev_io *bio, int rc)
|
||||
}
|
||||
|
||||
bio->retry_count = 0;
|
||||
spdk_bdev_io_complete(bdev_io, io_status);
|
||||
__bdev_nvme_io_complete(bdev_io, io_status, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1461,7 +1475,7 @@ bdev_nvme_complete_pending_resets(struct spdk_io_channel_iter *i)
|
||||
while (!TAILQ_EMPTY(&ctrlr_ch->pending_resets)) {
|
||||
bdev_io = TAILQ_FIRST(&ctrlr_ch->pending_resets);
|
||||
TAILQ_REMOVE(&ctrlr_ch->pending_resets, bdev_io, module_link);
|
||||
spdk_bdev_io_complete(bdev_io, status);
|
||||
__bdev_nvme_io_complete(bdev_io, status, NULL);
|
||||
}
|
||||
|
||||
spdk_for_each_channel_continue(i, 0);
|
||||
@ -1892,7 +1906,7 @@ bdev_nvme_reset_io_complete(struct nvme_bdev_io *bio)
|
||||
io_status = SPDK_BDEV_IO_STATUS_FAILED;
|
||||
}
|
||||
|
||||
spdk_bdev_io_complete(spdk_bdev_io_from_ctx(bio), io_status);
|
||||
__bdev_nvme_io_complete(spdk_bdev_io_from_ctx(bio), io_status, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -5869,7 +5883,7 @@ bdev_nvme_admin_passthru_complete_nvme_status(void *ctx)
|
||||
|
||||
complete:
|
||||
bio->retry_count = 0;
|
||||
spdk_bdev_io_complete_nvme_status(bdev_io, cpl->cdw0, cpl->status.sct, cpl->status.sc);
|
||||
__bdev_nvme_io_complete(bdev_io, 0, cpl);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -5879,9 +5893,9 @@ bdev_nvme_abort_complete(void *ctx)
|
||||
struct spdk_bdev_io *bdev_io = spdk_bdev_io_from_ctx(bio);
|
||||
|
||||
if (spdk_nvme_cpl_is_abort_success(&bio->cpl)) {
|
||||
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
|
||||
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS, NULL);
|
||||
} else {
|
||||
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
|
||||
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6470,9 +6484,9 @@ bdev_nvme_abort(struct nvme_bdev_channel *nbdev_ch, struct nvme_bdev_io *bio,
|
||||
TAILQ_FOREACH(bdev_io_to_abort, &nbdev_ch->retry_io_list, module_link) {
|
||||
if ((struct nvme_bdev_io *)bdev_io_to_abort->driver_ctx == bio_to_abort) {
|
||||
TAILQ_REMOVE(&nbdev_ch->retry_io_list, bdev_io_to_abort, module_link);
|
||||
spdk_bdev_io_complete(bdev_io_to_abort, SPDK_BDEV_IO_STATUS_ABORTED);
|
||||
__bdev_nvme_io_complete(bdev_io_to_abort, SPDK_BDEV_IO_STATUS_ABORTED, NULL);
|
||||
|
||||
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
|
||||
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS, NULL);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -6507,7 +6521,7 @@ bdev_nvme_abort(struct nvme_bdev_channel *nbdev_ch, struct nvme_bdev_io *bio,
|
||||
/* If no command was found or there was any error, complete the abort
|
||||
* request with failure.
|
||||
*/
|
||||
spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
|
||||
__bdev_nvme_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user