bdev/malloc: declare malloc task/disk variables

It gets rid of lots of casts to malloc_task/malloc_disk and makes the
code more readable.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Id50f0cbfa18adf5e7baafd58da03d290d6ba62c6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17195
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Konrad Sztyber 2023-03-08 10:38:37 +01:00 committed by David Ko
parent 81b5b941e9
commit 177a74ee0c

View File

@ -340,6 +340,8 @@ bdev_malloc_copy(struct malloc_disk *mdisk, struct spdk_io_channel *ch,
static int static int
_bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bdev_io) _bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bdev_io)
{ {
struct malloc_task *task = (struct malloc_task *)bdev_io->driver_ctx;
struct malloc_disk *disk = bdev_io->bdev->ctxt;
uint32_t block_size = bdev_io->bdev->blocklen; uint32_t block_size = bdev_io->bdev->blocklen;
uint32_t md_size = bdev_io->bdev->md_len; uint32_t md_size = bdev_io->bdev->md_len;
int rc; int rc;
@ -349,17 +351,13 @@ _bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bde
if (bdev_io->u.bdev.iovs[0].iov_base == NULL) { if (bdev_io->u.bdev.iovs[0].iov_base == NULL) {
assert(bdev_io->u.bdev.iovcnt == 1); assert(bdev_io->u.bdev.iovcnt == 1);
bdev_io->u.bdev.iovs[0].iov_base = bdev_io->u.bdev.iovs[0].iov_base =
((struct malloc_disk *)bdev_io->bdev->ctxt)->malloc_buf + disk->malloc_buf + bdev_io->u.bdev.offset_blocks * block_size;
bdev_io->u.bdev.offset_blocks * block_size;
bdev_io->u.bdev.iovs[0].iov_len = bdev_io->u.bdev.num_blocks * block_size; bdev_io->u.bdev.iovs[0].iov_len = bdev_io->u.bdev.num_blocks * block_size;
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_SUCCESS);
SPDK_BDEV_IO_STATUS_SUCCESS);
return 0; return 0;
} }
bdev_malloc_readv((struct malloc_disk *)bdev_io->bdev->ctxt, bdev_malloc_readv(disk, mch->accel_channel, task,
mch->accel_channel,
(struct malloc_task *)bdev_io->driver_ctx,
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovs,
bdev_io->u.bdev.iovcnt, bdev_io->u.bdev.iovcnt,
bdev_io->u.bdev.num_blocks * block_size, bdev_io->u.bdev.num_blocks * block_size,
@ -373,15 +371,12 @@ _bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bde
if (bdev_io->bdev->dif_type != SPDK_DIF_DISABLE) { if (bdev_io->bdev->dif_type != SPDK_DIF_DISABLE) {
rc = malloc_verify_pi(bdev_io); rc = malloc_verify_pi(bdev_io);
if (rc != 0) { if (rc != 0) {
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_FAILED);
SPDK_BDEV_IO_STATUS_FAILED);
return 0; return 0;
} }
} }
bdev_malloc_writev((struct malloc_disk *)bdev_io->bdev->ctxt, bdev_malloc_writev(disk, mch->accel_channel, task,
mch->accel_channel,
(struct malloc_task *)bdev_io->driver_ctx,
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovs,
bdev_io->u.bdev.iovcnt, bdev_io->u.bdev.iovcnt,
bdev_io->u.bdev.num_blocks * block_size, bdev_io->u.bdev.num_blocks * block_size,
@ -392,27 +387,21 @@ _bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bde
return 0; return 0;
case SPDK_BDEV_IO_TYPE_RESET: case SPDK_BDEV_IO_TYPE_RESET:
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_SUCCESS);
SPDK_BDEV_IO_STATUS_SUCCESS);
return 0; return 0;
case SPDK_BDEV_IO_TYPE_FLUSH: case SPDK_BDEV_IO_TYPE_FLUSH:
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_SUCCESS);
SPDK_BDEV_IO_STATUS_SUCCESS);
return 0; return 0;
case SPDK_BDEV_IO_TYPE_UNMAP: case SPDK_BDEV_IO_TYPE_UNMAP:
return bdev_malloc_unmap((struct malloc_disk *)bdev_io->bdev->ctxt, return bdev_malloc_unmap(disk, mch->accel_channel, task,
mch->accel_channel,
(struct malloc_task *)bdev_io->driver_ctx,
bdev_io->u.bdev.offset_blocks * block_size, bdev_io->u.bdev.offset_blocks * block_size,
bdev_io->u.bdev.num_blocks * block_size); bdev_io->u.bdev.num_blocks * block_size);
case SPDK_BDEV_IO_TYPE_WRITE_ZEROES: case SPDK_BDEV_IO_TYPE_WRITE_ZEROES:
/* bdev_malloc_unmap is implemented with a call to mem_cpy_fill which zeroes out all of the requested bytes. */ /* bdev_malloc_unmap is implemented with a call to mem_cpy_fill which zeroes out all of the requested bytes. */
return bdev_malloc_unmap((struct malloc_disk *)bdev_io->bdev->ctxt, return bdev_malloc_unmap(disk, mch->accel_channel, task,
mch->accel_channel,
(struct malloc_task *)bdev_io->driver_ctx,
bdev_io->u.bdev.offset_blocks * block_size, bdev_io->u.bdev.offset_blocks * block_size,
bdev_io->u.bdev.num_blocks * block_size); bdev_io->u.bdev.num_blocks * block_size);
@ -421,23 +410,18 @@ _bdev_malloc_submit_request(struct malloc_channel *mch, struct spdk_bdev_io *bde
void *buf; void *buf;
size_t len; size_t len;
buf = ((struct malloc_disk *)bdev_io->bdev->ctxt)->malloc_buf + buf = disk->malloc_buf + bdev_io->u.bdev.offset_blocks * block_size;
bdev_io->u.bdev.offset_blocks * block_size;
len = bdev_io->u.bdev.num_blocks * block_size; len = bdev_io->u.bdev.num_blocks * block_size;
spdk_bdev_io_set_buf(bdev_io, buf, len); spdk_bdev_io_set_buf(bdev_io, buf, len);
} }
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_SUCCESS);
SPDK_BDEV_IO_STATUS_SUCCESS);
return 0; return 0;
case SPDK_BDEV_IO_TYPE_ABORT: case SPDK_BDEV_IO_TYPE_ABORT:
malloc_complete_task((struct malloc_task *)bdev_io->driver_ctx, mch, malloc_complete_task(task, mch, SPDK_BDEV_IO_STATUS_FAILED);
SPDK_BDEV_IO_STATUS_FAILED);
return 0; return 0;
case SPDK_BDEV_IO_TYPE_COPY: case SPDK_BDEV_IO_TYPE_COPY:
bdev_malloc_copy((struct malloc_disk *)bdev_io->bdev->ctxt, bdev_malloc_copy(disk, mch->accel_channel, task,
mch->accel_channel,
(struct malloc_task *)bdev_io->driver_ctx,
bdev_io->u.bdev.offset_blocks * block_size, bdev_io->u.bdev.offset_blocks * block_size,
bdev_io->u.bdev.copy.src_offset_blocks * block_size, bdev_io->u.bdev.copy.src_offset_blocks * block_size,
bdev_io->u.bdev.num_blocks * block_size); bdev_io->u.bdev.num_blocks * block_size);