bdev: add getter for maximum unmap descriptors
Change-Id: Ifbdd29e2081600bf0d860582d80696546107cf1b Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
8651c2eb47
commit
1aea6c5b6f
@ -233,6 +233,14 @@ uint32_t spdk_bdev_get_block_size(const struct spdk_bdev *bdev);
|
||||
*/
|
||||
uint64_t spdk_bdev_get_num_blocks(const struct spdk_bdev *bdev);
|
||||
|
||||
/**
|
||||
* Get maximum number of descriptors per unmap request.
|
||||
*
|
||||
* \param bdev Block device to query.
|
||||
* \return Maximum number of unmap descriptors per request.
|
||||
*/
|
||||
uint32_t spdk_bdev_get_max_unmap_descriptors(const struct spdk_bdev *bdev);
|
||||
|
||||
/**
|
||||
* Get minimum I/O buffer address alignment for a bdev.
|
||||
*
|
||||
|
@ -557,6 +557,12 @@ spdk_bdev_get_num_blocks(const struct spdk_bdev *bdev)
|
||||
return bdev->blockcnt;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
spdk_bdev_get_max_unmap_descriptors(const struct spdk_bdev *bdev)
|
||||
{
|
||||
return bdev->max_unmap_bdesc_count;
|
||||
}
|
||||
|
||||
size_t
|
||||
spdk_bdev_get_buf_align(const struct spdk_bdev *bdev)
|
||||
{
|
||||
|
@ -546,6 +546,8 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
|
||||
len = 20 - hlen;
|
||||
|
||||
if (spdk_bdev_io_type_supported(bdev, SPDK_BDEV_IO_TYPE_UNMAP)) {
|
||||
uint32_t max_unmap_desc;
|
||||
|
||||
/*
|
||||
* MAXIMUM UNMAP LBA COUNT: indicates the
|
||||
* maximum number of LBAs that may be
|
||||
@ -560,11 +562,9 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
|
||||
* in the parameter data transferred to the
|
||||
* device server for an UNMAP command.
|
||||
*/
|
||||
if (bdev->max_unmap_bdesc_count <
|
||||
g_spdk_scsi.scsi_params.max_unmap_block_descriptor_count)
|
||||
to_be32(&data[24], bdev->max_unmap_bdesc_count);
|
||||
else
|
||||
to_be32(&data[24], g_spdk_scsi.scsi_params.max_unmap_block_descriptor_count);
|
||||
max_unmap_desc = spdk_min(spdk_bdev_get_max_unmap_descriptors(bdev),
|
||||
g_spdk_scsi.scsi_params.max_unmap_block_descriptor_count);
|
||||
to_be32(&data[24], max_unmap_desc);
|
||||
|
||||
/*
|
||||
* OPTIMAL UNMAP GRANULARITY: indicates the
|
||||
|
@ -106,6 +106,12 @@ spdk_bdev_get_product_name(const struct spdk_bdev *bdev)
|
||||
return "test product";
|
||||
}
|
||||
|
||||
uint32_t
|
||||
spdk_bdev_get_max_unmap_descriptors(const struct spdk_bdev *bdev)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
spdk_scsi_lun_clear_all(struct spdk_scsi_lun *lun)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user