Commit e9e9053a authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

bdev/ocssd: Separate main and error operations of bdev_ocssd_submit_request()



As same as the last patch, follow the pattern used by standard nvme
bdev about bdev_ocssd_submit_request().

Extract main operations from bdev_ocssd_submit_request() into
_bdev_ocssd_submit_request().

Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I286b4d82a356a3f1fac9c052397714cd7ee8497d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4525


Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent e2eac3bb
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -737,38 +737,39 @@ bdev_ocssd_delay_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev
	spdk_poller_resume(ocssd_ioch->pending_poller);
}

static void
bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io)
static int
_bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io)
{
	int rc = 0;

	switch (bdev_io->type) {
	case SPDK_BDEV_IO_TYPE_READ:
		spdk_bdev_io_get_buf(bdev_io, bdev_ocssd_io_get_buf_cb,
				     bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
		break;
		return 0;

	case SPDK_BDEV_IO_TYPE_WRITE:
		rc = bdev_ocssd_write(ioch, bdev_io);
		break;
		return bdev_ocssd_write(ioch, bdev_io);

	case SPDK_BDEV_IO_TYPE_ZONE_MANAGEMENT:
		rc = bdev_ocssd_zone_management(ioch, bdev_io);
		break;
		return bdev_ocssd_zone_management(ioch, bdev_io);

	case SPDK_BDEV_IO_TYPE_GET_ZONE_INFO:
		rc = bdev_ocssd_get_zone_info(ioch, bdev_io);
		break;
		return bdev_ocssd_get_zone_info(ioch, bdev_io);

	case SPDK_BDEV_IO_TYPE_ZONE_APPEND:
		rc = bdev_ocssd_zone_append(ioch, bdev_io);
		break;
		return bdev_ocssd_zone_append(ioch, bdev_io);

	default:
		rc = -EINVAL;
		break;
		return -EINVAL;
	}

	return 0;
}

static void
bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io)
{
	int rc = _bdev_ocssd_submit_request(ioch, bdev_io);

	if (spdk_unlikely(rc != 0)) {
		switch (rc) {
		case -ENOMEM: