bdev/rbd: add unmap support

Add support for unmap operation.

Signed-off-by: Jonas Pfefferle <pepperjo@japf.ch>
Change-Id: I7acce77d002f833ecb50482ee00653cd91cbc0d1
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11824
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Jonas Pfefferle 2022-03-07 13:25:09 +01:00 committed by Tomasz Zawadzki
parent 8ccdd956d2
commit 6d9822c12b

View File

@ -449,6 +449,8 @@ bdev_rbd_start_aio(struct bdev_rbd *disk, struct spdk_bdev_io *bdev_io,
} else {
ret = rbd_aio_writev(image, iov, iovcnt, offset, rbd_io->comp);
}
} else if (bdev_io->type == 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) {
ret = rbd_aio_flush(image, rbd_io->comp);
} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE_ZEROES) {
@ -605,6 +607,7 @@ _bdev_rbd_submit_request(void *ctx)
break;
case SPDK_BDEV_IO_TYPE_WRITE:
case SPDK_BDEV_IO_TYPE_UNMAP:
case SPDK_BDEV_IO_TYPE_FLUSH:
case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
bdev_rbd_start_aio(disk,
@ -648,6 +651,7 @@ bdev_rbd_io_type_supported(void *ctx, enum spdk_bdev_io_type io_type)
switch (io_type) {
case SPDK_BDEV_IO_TYPE_READ:
case SPDK_BDEV_IO_TYPE_WRITE:
case SPDK_BDEV_IO_TYPE_UNMAP:
case SPDK_BDEV_IO_TYPE_FLUSH:
case SPDK_BDEV_IO_TYPE_RESET:
case SPDK_BDEV_IO_TYPE_WRITE_ZEROES: