bdev/nvme: Add per-controller PRCHK values
Add prchk_flags in struct nvme_ctrlr and set it at creating of the corresponding controller, and copy it to each bdev of the controller. Change-Id: Ie971a0c1539b5419de9e5168ed47ac0e579be2c5 Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/c/443186 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
6afc800d93
commit
a827a91e6d
@ -804,6 +804,7 @@ nvme_ctrlr_create_bdev(struct nvme_ctrlr *nvme_ctrlr, uint32_t nsid)
|
||||
bdev->disk.dif_type = (enum spdk_dif_type)spdk_nvme_ns_get_pi_type(ns);
|
||||
if (bdev->disk.dif_type != SPDK_DIF_DISABLE) {
|
||||
bdev->disk.dif_is_head_of_md = nsdata->dps.md_start;
|
||||
bdev->disk.dif_check_flags = nvme_ctrlr->prchk_flags;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1016,7 +1017,8 @@ aer_cb(void *arg, const struct spdk_nvme_cpl *cpl)
|
||||
static int
|
||||
create_ctrlr(struct spdk_nvme_ctrlr *ctrlr,
|
||||
const char *name,
|
||||
const struct spdk_nvme_transport_id *trid)
|
||||
const struct spdk_nvme_transport_id *trid,
|
||||
uint32_t prchk_flags)
|
||||
{
|
||||
struct nvme_ctrlr *nvme_ctrlr;
|
||||
|
||||
@ -1043,6 +1045,7 @@ create_ctrlr(struct spdk_nvme_ctrlr *ctrlr,
|
||||
free(nvme_ctrlr);
|
||||
return -ENOMEM;
|
||||
}
|
||||
nvme_ctrlr->prchk_flags = prchk_flags;
|
||||
|
||||
spdk_io_device_register(ctrlr, bdev_nvme_create_cb, bdev_nvme_destroy_cb,
|
||||
sizeof(struct nvme_io_channel),
|
||||
@ -1090,7 +1093,7 @@ attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,
|
||||
|
||||
SPDK_DEBUGLOG(SPDK_LOG_BDEV_NVME, "Attached to %s (%s)\n", trid->traddr, name);
|
||||
|
||||
create_ctrlr(ctrlr, name, trid);
|
||||
create_ctrlr(ctrlr, name, trid, 0);
|
||||
|
||||
free(name);
|
||||
}
|
||||
@ -1252,7 +1255,7 @@ spdk_bdev_nvme_create(struct spdk_nvme_transport_id *trid,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (create_ctrlr(ctrlr, base_name, trid)) {
|
||||
if (create_ctrlr(ctrlr, base_name, trid, 0)) {
|
||||
SPDK_ERRLOG("Failed to create new device\n");
|
||||
return -1;
|
||||
}
|
||||
@ -1465,7 +1468,7 @@ bdev_nvme_library_init(void)
|
||||
goto end;
|
||||
}
|
||||
|
||||
rc = create_ctrlr(ctrlr, probe_ctx->names[i], &probe_ctx->trids[i]);
|
||||
rc = create_ctrlr(ctrlr, probe_ctx->names[i], &probe_ctx->trids[i], 0);
|
||||
if (rc) {
|
||||
goto end;
|
||||
}
|
||||
|
@ -66,6 +66,7 @@ struct nvme_ctrlr {
|
||||
char *name;
|
||||
int ref;
|
||||
bool destruct;
|
||||
uint32_t prchk_flags;
|
||||
uint32_t num_ns;
|
||||
/** Array of bdevs indexed by nsid - 1 */
|
||||
struct nvme_bdev *bdevs;
|
||||
|
Loading…
Reference in New Issue
Block a user