nvme_ns: add function to get read value of unmapped blocks

Change-Id: I52dc3038d239661421760ceccfbbf841cc63a18a
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/372000
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Seth Howell 2017-07-27 12:47:53 -07:00 committed by Jim Harris
parent c6dc4d184d
commit d8e88d9918
2 changed files with 16 additions and 0 deletions

View File

@ -910,6 +910,15 @@ uint32_t spdk_nvme_ns_get_md_size(struct spdk_nvme_ns *ns);
*/
bool spdk_nvme_ns_supports_extended_lba(struct spdk_nvme_ns *ns);
/**
* \brief Determine the value returned when reading deallocated blocks.
*
* If deallocated blocks return 0, the deallocate command can be used as a more efficient alternative
* to the write_zeroes command, especially for large requests.
*/
enum spdk_nvme_dealloc_logical_block_read_value spdk_nvme_ns_get_dealloc_logical_block_read_value(
struct spdk_nvme_ns *ns);
/**
* \brief Namespace command support flags.
*/

View File

@ -185,6 +185,13 @@ spdk_nvme_ns_get_data(struct spdk_nvme_ns *ns)
return _nvme_ns_get_data(ns);
}
enum spdk_nvme_dealloc_logical_block_read_value spdk_nvme_ns_get_dealloc_logical_block_read_value(
struct spdk_nvme_ns *ns)
{
const struct spdk_nvme_ns_data *data = spdk_nvme_ns_get_data(ns);
return data->dlfeat.bits.read_value;
}
int nvme_ns_construct(struct spdk_nvme_ns *ns, uint16_t id,
struct spdk_nvme_ctrlr *ctrlr)
{