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:
parent
81b5b941e9
commit
177a74ee0c
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user