From e39b4d6cdb7dc78238be6f123ff6bcb5722b4c2a Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Thu, 28 Feb 2019 22:56:54 -0500 Subject: [PATCH] nvmf: set controller/namespace identify data to enable reservation Persist through power loss feature is not supported for now. Change-Id: Id2a5088389dc28b9d28d88c04ff819d20ea11902 Signed-off-by: Changpeng Liu Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/436940 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- lib/nvmf/ctrlr.c | 1 + lib/nvmf/ctrlr_bdev.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index 16a39a3bf..ac6b09483 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -1532,6 +1532,7 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c cdata->oncs.dsm = spdk_nvmf_ctrlr_dsm_supported(ctrlr); cdata->oncs.write_zeroes = spdk_nvmf_ctrlr_write_zeroes_supported(ctrlr); + cdata->oncs.reservations = 1; SPDK_DEBUGLOG(SPDK_LOG_NVMF, "ext ctrlr data: ioccsz 0x%x\n", cdata->nvmf_specific.ioccsz); diff --git a/lib/nvmf/ctrlr_bdev.c b/lib/nvmf/ctrlr_bdev.c index 116d54e1f..56e6fa087 100644 --- a/lib/nvmf/ctrlr_bdev.c +++ b/lib/nvmf/ctrlr_bdev.c @@ -144,6 +144,14 @@ spdk_nvmf_bdev_ctrlr_identify_ns(struct spdk_nvmf_ns *ns, struct spdk_nvme_ns_da } nsdata->noiob = spdk_bdev_get_optimal_io_boundary(bdev); nsdata->nmic.can_share = 1; + nsdata->nsrescap.rescap.persist = 0; /* TODO: don't support for now */ + nsdata->nsrescap.rescap.write_exclusive = 1; + nsdata->nsrescap.rescap.exclusive_access = 1; + nsdata->nsrescap.rescap.write_exclusive_reg_only = 1; + nsdata->nsrescap.rescap.exclusive_access_reg_only = 1; + nsdata->nsrescap.rescap.write_exclusive_all_reg = 1; + nsdata->nsrescap.rescap.exclusive_access_all_reg = 1; + nsdata->nsrescap.rescap.ignore_existing_key = 1; SPDK_STATIC_ASSERT(sizeof(nsdata->nguid) == sizeof(ns->opts.nguid), "size mismatch"); memcpy(nsdata->nguid, ns->opts.nguid, sizeof(nsdata->nguid));