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 <changpeng.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/436940
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Changpeng Liu 2019-02-28 22:56:54 -05:00 committed by Jim Harris
parent 4b55682e3a
commit e39b4d6cdb
2 changed files with 9 additions and 0 deletions

View File

@ -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.dsm = spdk_nvmf_ctrlr_dsm_supported(ctrlr);
cdata->oncs.write_zeroes = spdk_nvmf_ctrlr_write_zeroes_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", SPDK_DEBUGLOG(SPDK_LOG_NVMF, "ext ctrlr data: ioccsz 0x%x\n",
cdata->nvmf_specific.ioccsz); cdata->nvmf_specific.ioccsz);

View File

@ -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->noiob = spdk_bdev_get_optimal_io_boundary(bdev);
nsdata->nmic.can_share = 1; 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"); SPDK_STATIC_ASSERT(sizeof(nsdata->nguid) == sizeof(ns->opts.nguid), "size mismatch");
memcpy(nsdata->nguid, ns->opts.nguid, sizeof(nsdata->nguid)); memcpy(nsdata->nguid, ns->opts.nguid, sizeof(nsdata->nguid));