From e0daee98400437bb17b07375b84f375a6afc859a Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 28 Oct 2022 11:00:21 +0900 Subject: [PATCH] bdev/error: Use spdk_bdev_part_submit_request_ext() to use custom completion callback This is a preparation to inject data corruption at completion for read I/O. Signed-off-by: Shuhei Matsumoto Change-Id: I839f454d643254f2b805f3d4c65282deee037d71 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15003 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris --- module/bdev/error/vbdev_error.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/module/bdev/error/vbdev_error.c b/module/bdev/error/vbdev_error.c index 6ffbcdb34..26543421b 100644 --- a/module/bdev/error/vbdev_error.c +++ b/module/bdev/error/vbdev_error.c @@ -156,6 +156,14 @@ vbdev_error_get_error_type(struct error_disk *error_disk, uint32_t io_type) return 0; } +static void +vbdev_error_complete_request(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) +{ + int status = success ? SPDK_BDEV_IO_STATUS_SUCCESS : SPDK_BDEV_IO_STATUS_FAILED; + + spdk_bdev_io_complete(bdev_io, status); +} + static void vbdev_error_submit_request(struct spdk_io_channel *_ch, struct spdk_bdev_io *bdev_io) { @@ -180,7 +188,8 @@ vbdev_error_submit_request(struct spdk_io_channel *_ch, struct spdk_bdev_io *bde error_disk->error_vector[bdev_io->type].error_num--; break; case 0: - rc = spdk_bdev_part_submit_request(&ch->part_ch, bdev_io); + rc = spdk_bdev_part_submit_request_ext(&ch->part_ch, bdev_io, + vbdev_error_complete_request); if (rc) { SPDK_ERRLOG("bdev_error: submit request failed, rc=%d\n", rc);