diff --git a/module/bdev/malloc/bdev_malloc.c b/module/bdev/malloc/bdev_malloc.c index 0710fb2fa..53156dc3a 100644 --- a/module/bdev/malloc/bdev_malloc.c +++ b/module/bdev/malloc/bdev_malloc.c @@ -261,8 +261,7 @@ static int _bdev_malloc_submit_request(struct spdk_io_channel *ch, struct spdk_b ((struct malloc_disk *)bdev_io->bdev->ctxt)->malloc_buf + bdev_io->u.bdev.offset_blocks * block_size; bdev_io->u.bdev.iovs[0].iov_len = bdev_io->u.bdev.num_blocks * block_size; - spdk_bdev_io_complete(spdk_bdev_io_from_ctx(bdev_io->driver_ctx), - SPDK_BDEV_IO_STATUS_SUCCESS); + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS); return 0; } @@ -321,8 +320,10 @@ static int _bdev_malloc_submit_request(struct spdk_io_channel *ch, struct spdk_b spdk_bdev_io_set_buf(bdev_io, buf, len); } - spdk_bdev_io_complete(spdk_bdev_io_from_ctx(bdev_io->driver_ctx), - SPDK_BDEV_IO_STATUS_SUCCESS); + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS); + return 0; + case SPDK_BDEV_IO_TYPE_ABORT: + spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED); return 0; default: return -1; @@ -348,6 +349,7 @@ bdev_malloc_io_type_supported(void *ctx, enum spdk_bdev_io_type io_type) case SPDK_BDEV_IO_TYPE_UNMAP: case SPDK_BDEV_IO_TYPE_WRITE_ZEROES: case SPDK_BDEV_IO_TYPE_ZCOPY: + case SPDK_BDEV_IO_TYPE_ABORT: return true; default: