From 49daf72e0ec7446ce78d6d52b2b3f5f2fd0629b5 Mon Sep 17 00:00:00 2001 From: HaoZhiZhang Date: Tue, 24 Jan 2017 02:20:04 +0800 Subject: [PATCH] nvme: support extended LBA without protection information (#101) If namespace is formatted with per lba metadata feature and also disable end-to-end protection feature, host couldn't use per extended-lba metadata area. Signed-off-by: Zhihao Zhang --- lib/nvme/nvme_ns.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_ns.c b/lib/nvme/nvme_ns.c index 82b71a99f..f229a1d64 100644 --- a/lib/nvme/nvme_ns.c +++ b/lib/nvme/nvme_ns.c @@ -96,13 +96,15 @@ int nvme_ns_identify_update(struct spdk_nvme_ns *ns) ns->flags |= SPDK_NVME_NS_RESERVATION_SUPPORTED; } + if (nsdata->flbas.extended) { + ns->flags |= SPDK_NVME_NS_EXTENDED_LBA_SUPPORTED; + } + ns->md_size = nsdata->lbaf[nsdata->flbas.format].ms; ns->pi_type = SPDK_NVME_FMT_NVM_PROTECTION_DISABLE; if (nsdata->lbaf[nsdata->flbas.format].ms && nsdata->dps.pit) { ns->flags |= SPDK_NVME_NS_DPS_PI_SUPPORTED; ns->pi_type = nsdata->dps.pit; - if (nsdata->flbas.extended) - ns->flags |= SPDK_NVME_NS_EXTENDED_LBA_SUPPORTED; } return rc; }