From f76713837e9a125ce33780a002c21b9b75f9ba4a Mon Sep 17 00:00:00 2001 From: Maciej Szwed Date: Fri, 13 Dec 2019 12:43:44 +0100 Subject: [PATCH] nvme: Add spdk_nvme_ns_supports_compare function This function returns information if compare operation is supported by device. Signed-off-by: Maciej Szwed Change-Id: I321e9bf6d146ac8d14ea4549cb4380735b30be6f Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/477925 Tested-by: SPDK CI Jenkins Community-CI: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- include/spdk/nvme.h | 12 ++++++++++++ lib/nvme/nvme_ns.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/include/spdk/nvme.h b/include/spdk/nvme.h index 1180e7fdc..bd4c56c5b 100644 --- a/include/spdk/nvme.h +++ b/include/spdk/nvme.h @@ -1889,6 +1889,18 @@ 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); +/** + * Check whether if the namespace supports compare operation + * + * This function is thread safe and can be called at any point while the controller + * is attached to the SPDK NVMe driver. + * + * \param ns Namespace to query. + * + * \return true if the namespace supports compare operation, or false otherwise. + */ +bool spdk_nvme_ns_supports_compare(struct spdk_nvme_ns *ns); + /** * Determine the value returned when reading deallocated blocks. * diff --git a/lib/nvme/nvme_ns.c b/lib/nvme/nvme_ns.c index 095f0829a..01ce80b32 100644 --- a/lib/nvme/nvme_ns.c +++ b/lib/nvme/nvme_ns.c @@ -250,6 +250,12 @@ spdk_nvme_ns_supports_extended_lba(struct spdk_nvme_ns *ns) return (ns->flags & SPDK_NVME_NS_EXTENDED_LBA_SUPPORTED) ? true : false; } +bool +spdk_nvme_ns_supports_compare(struct spdk_nvme_ns *ns) +{ + return (ns->flags & SPDK_NVME_NS_COMPARE_SUPPORTED) ? true : false; +} + uint32_t spdk_nvme_ns_get_md_size(struct spdk_nvme_ns *ns) {