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: Shuhei 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: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
e2eac3bbd9
commit
e9e9053a23
@ -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);
|
spdk_poller_resume(ocssd_ioch->pending_poller);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io)
|
_bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
|
||||||
|
|
||||||
switch (bdev_io->type) {
|
switch (bdev_io->type) {
|
||||||
case SPDK_BDEV_IO_TYPE_READ:
|
case SPDK_BDEV_IO_TYPE_READ:
|
||||||
spdk_bdev_io_get_buf(bdev_io, bdev_ocssd_io_get_buf_cb,
|
spdk_bdev_io_get_buf(bdev_io, bdev_ocssd_io_get_buf_cb,
|
||||||
bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
|
bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen);
|
||||||
break;
|
return 0;
|
||||||
|
|
||||||
case SPDK_BDEV_IO_TYPE_WRITE:
|
case SPDK_BDEV_IO_TYPE_WRITE:
|
||||||
rc = bdev_ocssd_write(ioch, bdev_io);
|
return bdev_ocssd_write(ioch, bdev_io);
|
||||||
break;
|
|
||||||
|
|
||||||
case SPDK_BDEV_IO_TYPE_ZONE_MANAGEMENT:
|
case SPDK_BDEV_IO_TYPE_ZONE_MANAGEMENT:
|
||||||
rc = bdev_ocssd_zone_management(ioch, bdev_io);
|
return bdev_ocssd_zone_management(ioch, bdev_io);
|
||||||
break;
|
|
||||||
|
|
||||||
case SPDK_BDEV_IO_TYPE_GET_ZONE_INFO:
|
case SPDK_BDEV_IO_TYPE_GET_ZONE_INFO:
|
||||||
rc = bdev_ocssd_get_zone_info(ioch, bdev_io);
|
return bdev_ocssd_get_zone_info(ioch, bdev_io);
|
||||||
break;
|
|
||||||
|
|
||||||
case SPDK_BDEV_IO_TYPE_ZONE_APPEND:
|
case SPDK_BDEV_IO_TYPE_ZONE_APPEND:
|
||||||
rc = bdev_ocssd_zone_append(ioch, bdev_io);
|
return bdev_ocssd_zone_append(ioch, bdev_io);
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
rc = -EINVAL;
|
return -EINVAL;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)) {
|
if (spdk_unlikely(rc != 0)) {
|
||||||
switch (rc) {
|
switch (rc) {
|
||||||
case -ENOMEM:
|
case -ENOMEM:
|
||||||
|
Loading…
Reference in New Issue
Block a user