Commit 0ae5a89d authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

module/raid: unify submit_request function signatures



Pass raid_bdev_io instead of spdk_bdev_io.

Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I8ecc39abafe54a7bc5034caa126f961c444230a2
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471084


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 77b8618e
Loading
Loading
Loading
Loading
+24 −11
Original line number Diff line number Diff line
@@ -346,27 +346,38 @@ raid_bdev_queue_io_wait(struct spdk_bdev_io *raid_bdev_io, uint8_t pd_idx,
	spdk_bdev_io_complete(raid_bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
}

static void
raid_bdev_submit_reset_request(struct raid_bdev_io *raid_io);

static void
_raid_bdev_submit_reset_request(void *_bdev_io)
{
	struct spdk_bdev_io *bdev_io = _bdev_io;
	struct raid_bdev_io *raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	raid_bdev_submit_reset_request(raid_io);
}

/*
 * brief:
 * _raid_bdev_submit_reset_request_next function submits the next batch of reset requests
 * raid_bdev_submit_reset_request function submits reset requests
 * to member disks; it will submit as many as possible unless a reset fails with -ENOMEM, in
 * which case it will queue it for later submission
 * params:
 * bdev_io - pointer to parent bdev_io on raid bdev device
 * raid_io
 * returns:
 * none
 */
static void
_raid_bdev_submit_reset_request_next(void *_bdev_io)
raid_bdev_submit_reset_request(struct raid_bdev_io *raid_io)
{
	struct spdk_bdev_io		*bdev_io = _bdev_io;
	struct raid_bdev_io		*raid_io;
	struct spdk_bdev_io		*bdev_io;
	struct raid_bdev		*raid_bdev;
	int				ret;
	uint8_t				i;

	bdev_io = spdk_bdev_io_from_ctx(raid_io);
	raid_bdev = (struct raid_bdev *)bdev_io->bdev->ctxt;
	raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	raid_io->base_bdev_io_expected = raid_bdev->num_base_bdevs;

@@ -379,7 +390,7 @@ _raid_bdev_submit_reset_request_next(void *_bdev_io)
			raid_io->base_bdev_io_submitted++;
		} else {
			raid_bdev_queue_io_wait(bdev_io, i,
						_raid_bdev_submit_reset_request_next, ret);
						_raid_bdev_submit_reset_request, ret);
			return;
		}
	}
@@ -399,12 +410,14 @@ static void
raid_bdev_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
		     bool success)
{
	struct raid_bdev_io *raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	if (!success) {
		spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
		return;
	}

	raid0_submit_rw_request(bdev_io);
	raid0_submit_rw_request(raid_io);
}

/*
@@ -434,16 +447,16 @@ raid_bdev_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_i
				     bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
		break;
	case SPDK_BDEV_IO_TYPE_WRITE:
		raid0_submit_rw_request(bdev_io);
		raid0_submit_rw_request(raid_io);
		break;

	case SPDK_BDEV_IO_TYPE_RESET:
		_raid_bdev_submit_reset_request_next(bdev_io);
		raid_bdev_submit_reset_request(raid_io);
		break;

	case SPDK_BDEV_IO_TYPE_FLUSH:
	case SPDK_BDEV_IO_TYPE_UNMAP:
		raid0_submit_null_payload_request(bdev_io);
		raid0_submit_null_payload_request(raid_io);
		break;

	default:
+2 −2
Original line number Diff line number Diff line
@@ -266,9 +266,9 @@ __RAID_MODULE_REGISTER(__LINE__)(void) \
}

void
raid0_submit_rw_request(struct spdk_bdev_io *bdev_io);
raid0_submit_rw_request(struct raid_bdev_io *raid_io);
void
raid0_submit_null_payload_request(void *_bdev_io);
raid0_submit_null_payload_request(struct raid_bdev_io *raid_io);
void
raid_bdev_base_io_completion(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg);
void
+18 −9
Original line number Diff line number Diff line
@@ -73,14 +73,14 @@ raid0_waitq_io_process(void *ctx);
 * raid0_submit_rw_request function is used to submit I/O to the correct
 * member disk for raid0 bdevs.
 * params:
 * bdev_io - parent bdev io
 * raid_io
 * returns:
 * none
 */
void
raid0_submit_rw_request(struct spdk_bdev_io *bdev_io)
raid0_submit_rw_request(struct raid_bdev_io *raid_io)
{
	struct raid_bdev_io		*raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;
	struct spdk_bdev_io		*bdev_io = spdk_bdev_io_from_ctx(raid_io);
	struct raid_bdev_io_channel	*raid_ch = raid_io->raid_ch;
	struct raid_bdev		*raid_bdev = (struct raid_bdev *)bdev_io->bdev->ctxt;
	uint64_t			pd_strip;
@@ -155,8 +155,9 @@ static void
raid0_waitq_io_process(void *ctx)
{
	struct spdk_bdev_io     *bdev_io = ctx;
	struct raid_bdev_io	*raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	raid0_submit_rw_request(bdev_io);
	raid0_submit_rw_request(raid_io);
}

/* raid0 IO range */
@@ -254,6 +255,15 @@ _raid0_split_io_range(struct raid_bdev_io_range *io_range, uint8_t disk_idx,
	*_nblocks_in_disk = nblocks_in_disk;
}

static void
_raid0_submit_null_payload_request(void *_bdev_io)
{
	struct spdk_bdev_io *bdev_io = _bdev_io;
	struct raid_bdev_io *raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	raid0_submit_null_payload_request(raid_io);
}

/*
 * brief:
 * raid0_submit_null_payload_request function submits the next batch of
@@ -266,16 +276,15 @@ _raid0_split_io_range(struct raid_bdev_io_range *io_range, uint8_t disk_idx,
 * none
 */
void
raid0_submit_null_payload_request(void *_bdev_io)
raid0_submit_null_payload_request(struct raid_bdev_io *raid_io)
{
	struct spdk_bdev_io		*bdev_io = _bdev_io;
	struct raid_bdev_io		*raid_io;
	struct spdk_bdev_io		*bdev_io;
	struct raid_bdev		*raid_bdev;
	struct raid_bdev_io_range	io_range;
	int				ret;

	bdev_io = spdk_bdev_io_from_ctx(raid_io);
	raid_bdev = (struct raid_bdev *)bdev_io->bdev->ctxt;
	raid_io = (struct raid_bdev_io *)bdev_io->driver_ctx;

	_raid0_get_io_range(&io_range, raid_bdev->num_base_bdevs,
			    raid_bdev->strip_size, raid_bdev->strip_size_shift,
@@ -320,7 +329,7 @@ raid0_submit_null_payload_request(void *_bdev_io)
			raid_io->base_bdev_io_submitted++;
		} else {
			raid_bdev_queue_io_wait(bdev_io, disk_idx,
						raid0_submit_null_payload_request, ret);
						_raid0_submit_null_payload_request, ret);
			return;
		}
	}