bdev/nvme: account for ACWU values being 0-based

ACWU and NACWU are 0-based values.  But spdk_bdev_get_acwu()
specifies the compare-and-write-unit in terms of blocks
(i.e. 1-based).  So the bdev/nvme module needs to add 1
to this value before registering the bdev.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12384 (master)

(cherry picked from commit ab9c7a6a81)
Change-Id: I7c19975a2bd8c09bb65374838fe20aad690d1ecf
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12491
Reviewed-by: John Kariuki <John.K.Kariuki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Jim Harris 2022-04-25 17:41:12 +00:00 committed by Keith Lucas
parent 5dedf4987e
commit 2560829769

View File

@ -2548,9 +2548,9 @@ nvme_disk_create(struct spdk_bdev *disk, const char *base_name,
SPDK_NVME_CTRLR_COMPARE_AND_WRITE_SUPPORTED)) {
disk->acwu = 0;
} else if (nsdata->nsfeat.ns_atomic_write_unit) {
disk->acwu = nsdata->nacwu;
disk->acwu = nsdata->nacwu + 1; /* 0-based */
} else {
disk->acwu = cdata->acwu;
disk->acwu = cdata->acwu + 1; /* 0-based */
}
disk->ctxt = ctx;