Commit 6cc5fd1b authored by Jonas Pfefferle's avatar Jonas Pfefferle Committed by Konrad Sztyber
Browse files

bdev/rbd: refactor rbd start aio switch/case



Use switch/case instead of if/else for io types when starting
rbd aio.

Change-Id: I4f8b8deb73fbf95f12da96f162125512d676338c
Signed-off-by: default avatarJonas Pfefferle <pepperjo@japf.ch>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18088


Community-CI: Mellanox Build Bot
Reviewed-by: default avatarZiye Yang <ziye.yang@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
parent b994a06a
Loading
Loading
Loading
Loading
+24 −8
Original line number Diff line number Diff line
@@ -408,25 +408,41 @@ _bdev_rbd_start_aio(struct bdev_rbd *disk, struct spdk_bdev_io *bdev_io,
		goto err;
	}

	if (bdev_io->type == SPDK_BDEV_IO_TYPE_READ) {
	switch (bdev_io->type) {
	case SPDK_BDEV_IO_TYPE_READ:
		rbd_io->total_len = len;
		if (spdk_likely(iovcnt == 1)) {
			ret = rbd_aio_read(image, offset, iov[0].iov_len, iov[0].iov_base, rbd_io->comp);
			ret = rbd_aio_read(image, offset, iov[0].iov_len, iov[0].iov_base,
					   rbd_io->comp);
		} else {
			ret = rbd_aio_readv(image, iov, iovcnt, offset, rbd_io->comp);
		}
	} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE) {
		break;
	case SPDK_BDEV_IO_TYPE_WRITE:
		if (spdk_likely(iovcnt == 1)) {
			ret = rbd_aio_write(image, offset, iov[0].iov_len, iov[0].iov_base, rbd_io->comp);
			ret = rbd_aio_write(image, offset, iov[0].iov_len, iov[0].iov_base,
					    rbd_io->comp);
		} else {
			ret = rbd_aio_writev(image, iov, iovcnt, offset, rbd_io->comp);
		}
	} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_UNMAP) {
		break;
	case SPDK_BDEV_IO_TYPE_UNMAP:
		ret = rbd_aio_discard(image, offset, len, rbd_io->comp);
	} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_FLUSH) {
		break;
	case SPDK_BDEV_IO_TYPE_FLUSH:
		ret = rbd_aio_flush(image, rbd_io->comp);
	} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE_ZEROES) {
		ret = rbd_aio_write_zeroes(image, offset, len, rbd_io->comp, /* zero_flags */ 0, /* op_flags */ 0);
		break;
	case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
		ret = rbd_aio_write_zeroes(image, offset, len, rbd_io->comp, /* zero_flags */ 0,
					   /* op_flags */ 0);
		break;
	default:
		/* This should not happen.
		 * Function should only be called with supported io types in bdev_rbd_submit_request
		 */
		SPDK_ERRLOG("Unsupported IO type =%d\n", bdev_io->type);
		ret = -ENOTSUP;
		break;
	}

	if (ret < 0) {