diff --git a/include/spdk/bdev_module.h b/include/spdk/bdev_module.h index 2ca298aef..f83db5e10 100644 --- a/include/spdk/bdev_module.h +++ b/include/spdk/bdev_module.h @@ -222,6 +222,7 @@ struct spdk_bdev_fn_table { /** bdev I/O completion status */ enum spdk_bdev_io_status { + SPDK_BDEV_IO_STATUS_ABORTED = -7, SPDK_BDEV_IO_STATUS_FIRST_FUSED_FAILED = -6, SPDK_BDEV_IO_STATUS_MISCOMPARE = -5, /* diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index e68236811..01749c275 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -4949,6 +4949,9 @@ spdk_bdev_io_get_nvme_status(const struct spdk_bdev_io *bdev_io, uint32_t *cdw0, } else if (bdev_io->internal.status == SPDK_BDEV_IO_STATUS_SUCCESS) { *sct = SPDK_NVME_SCT_GENERIC; *sc = SPDK_NVME_SC_SUCCESS; + } else if (bdev_io->internal.status == SPDK_BDEV_IO_STATUS_ABORTED) { + *sct = SPDK_NVME_SCT_GENERIC; + *sc = SPDK_NVME_SC_ABORTED_BY_REQUEST; } else { *sct = SPDK_NVME_SCT_GENERIC; *sc = SPDK_NVME_SC_INTERNAL_DEVICE_ERROR;