From a5d9d77821bc5f35e6651e4e69f4ec7c0a7801f2 Mon Sep 17 00:00:00 2001 From: paul luse Date: Fri, 27 Sep 2019 10:44:56 -0400 Subject: [PATCH] module/raid: move a single function up In prep for future RAID1E patch so that the completion function can be shared by multiple RAID levels. Change-Id: I169e2d64388fab701e9b467f8803aacd5d1250d2 Signed-off-by: paul luse Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469743 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- module/bdev/raid/bdev_raid.c | 56 ++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/module/bdev/raid/bdev_raid.c b/module/bdev/raid/bdev_raid.c index 11fdb0787..a0237a259 100644 --- a/module/bdev/raid/bdev_raid.c +++ b/module/bdev/raid/bdev_raid.c @@ -282,6 +282,34 @@ raid_bdev_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg } } +/* + * brief: + * raid_bdev_base_io_completion is the completion callback for member disk requests + * params: + * bdev_io - pointer to member disk requested bdev_io + * success - true if successful, false if unsuccessful + * cb_arg - callback argument (parent raid bdev_io) + * returns: + * none + */ +static void +raid_bdev_base_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) +{ + struct spdk_bdev_io *parent_io = cb_arg; + struct raid_bdev_io *raid_io = (struct raid_bdev_io *)parent_io->driver_ctx; + + spdk_bdev_free_io(bdev_io); + + if (!success) { + raid_io->base_bdev_io_status = SPDK_BDEV_IO_STATUS_FAILED; + } + + raid_io->base_bdev_io_completed++; + if (raid_io->base_bdev_io_completed == raid_io->base_bdev_io_expected) { + spdk_bdev_io_complete(parent_io, raid_io->base_bdev_io_status); + } +} + /* * brief: * raid0_submit_rw_request function is used to submit I/O to the correct @@ -471,34 +499,6 @@ raid0_start_rw_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io) } } -/* - * brief: - * raid_bdev_base_io_completion is the completion callback for member disk requests - * params: - * bdev_io - pointer to member disk requested bdev_io - * success - true if successful, false if unsuccessful - * cb_arg - callback argument (parent raid bdev_io) - * returns: - * none - */ -static void -raid_bdev_base_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg) -{ - struct spdk_bdev_io *parent_io = cb_arg; - struct raid_bdev_io *raid_io = (struct raid_bdev_io *)parent_io->driver_ctx; - - spdk_bdev_free_io(bdev_io); - - if (!success) { - raid_io->base_bdev_io_status = SPDK_BDEV_IO_STATUS_FAILED; - } - - raid_io->base_bdev_io_completed++; - if (raid_io->base_bdev_io_completed == raid_io->base_bdev_io_expected) { - spdk_bdev_io_complete(parent_io, raid_io->base_bdev_io_status); - } -} - /* * brief: * raid_bdev_base_io_submit_fail_process processes IO requests for member disk