diff --git a/app/nvmf_tgt/conf.c b/app/nvmf_tgt/conf.c index c1704967a..42534f6a3 100644 --- a/app/nvmf_tgt/conf.c +++ b/app/nvmf_tgt/conf.c @@ -613,7 +613,7 @@ spdk_nvmf_construct_subsystem(const char *name, } SPDK_NOTICELOG("Attaching block device %s to subsystem %s\n", - bdev->name, subsystem->subnqn); + spdk_bdev_get_name(bdev), subsystem->subnqn); } } diff --git a/include/spdk/bdev.h b/include/spdk/bdev.h index dec0e0c05..ce16460a7 100644 --- a/include/spdk/bdev.h +++ b/include/spdk/bdev.h @@ -199,6 +199,22 @@ bool spdk_bdev_io_type_supported(struct spdk_bdev *bdev, enum spdk_bdev_io_type int spdk_bdev_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w); +/** + * Get block device name. + * + * \param bdev Block device to query. + * \return Name of bdev as a null-terminated string. + */ +const char *spdk_bdev_get_name(const struct spdk_bdev *bdev); + +/** + * Get block device product name. + * + * \param bdev Block device to query. + * \return Product name of bdev as a null-terminated string. + */ +const char *spdk_bdev_get_product_name(const struct spdk_bdev *bdev); + /** * Get minimum I/O buffer address alignment for a bdev. * diff --git a/lib/bdev/aio/blockdev_aio_rpc.c b/lib/bdev/aio/blockdev_aio_rpc.c index 0727b705e..66bc63065 100644 --- a/lib/bdev/aio/blockdev_aio_rpc.c +++ b/lib/bdev/aio/blockdev_aio_rpc.c @@ -83,7 +83,7 @@ spdk_rpc_construct_aio_bdev(struct spdk_jsonrpc_server_conn *conn, w = spdk_jsonrpc_begin_result(conn, id); spdk_json_write_array_begin(w); - spdk_json_write_string(w, bdev->name); + spdk_json_write_string(w, spdk_bdev_get_name(bdev)); spdk_json_write_array_end(w); spdk_jsonrpc_end_result(conn, w); return; diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 47ac4bcaf..612e9ba16 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -533,6 +533,18 @@ spdk_bdev_get_io_channel(struct spdk_bdev *bdev, uint32_t priority) return spdk_get_io_channel(bdev, priority, false, NULL); } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return bdev->name; +} + +const char * +spdk_bdev_get_product_name(const struct spdk_bdev *bdev) +{ + return bdev->product_name; +} + size_t spdk_bdev_get_buf_align(const struct spdk_bdev *bdev) { diff --git a/lib/bdev/malloc/blockdev_malloc_rpc.c b/lib/bdev/malloc/blockdev_malloc_rpc.c index 20c123f0c..65707c68c 100644 --- a/lib/bdev/malloc/blockdev_malloc_rpc.c +++ b/lib/bdev/malloc/blockdev_malloc_rpc.c @@ -74,7 +74,7 @@ spdk_rpc_construct_malloc_bdev(struct spdk_jsonrpc_server_conn *conn, w = spdk_jsonrpc_begin_result(conn, id); spdk_json_write_array_begin(w); - spdk_json_write_string(w, bdev->name); + spdk_json_write_string(w, spdk_bdev_get_name(bdev)); spdk_json_write_array_end(w); spdk_jsonrpc_end_result(conn, w); return; diff --git a/lib/bdev/rbd/blockdev_rbd_rpc.c b/lib/bdev/rbd/blockdev_rbd_rpc.c index a10a06ae7..5d49a0041 100644 --- a/lib/bdev/rbd/blockdev_rbd_rpc.c +++ b/lib/bdev/rbd/blockdev_rbd_rpc.c @@ -85,7 +85,7 @@ spdk_rpc_construct_rbd_bdev(struct spdk_jsonrpc_server_conn *conn, w = spdk_jsonrpc_begin_result(conn, id); spdk_json_write_array_begin(w); - spdk_json_write_string(w, bdev->name); + spdk_json_write_string(w, spdk_bdev_get_name(bdev)); spdk_json_write_array_end(w); spdk_jsonrpc_end_result(conn, w); return; diff --git a/lib/bdev/rpc/bdev_rpc.c b/lib/bdev/rpc/bdev_rpc.c index df48c7701..53592311c 100644 --- a/lib/bdev/rpc/bdev_rpc.c +++ b/lib/bdev/rpc/bdev_rpc.c @@ -60,10 +60,10 @@ spdk_rpc_get_bdevs(struct spdk_jsonrpc_server_conn *conn, spdk_json_write_object_begin(w); spdk_json_write_name(w, "name"); - spdk_json_write_string(w, bdev->name); + spdk_json_write_string(w, spdk_bdev_get_name(bdev)); spdk_json_write_name(w, "product_name"); - spdk_json_write_string(w, bdev->product_name); + spdk_json_write_string(w, spdk_bdev_get_product_name(bdev)); spdk_json_write_name(w, "block_size"); spdk_json_write_uint32(w, bdev->blocklen); diff --git a/lib/bdev/split/vbdev_split.c b/lib/bdev/split/vbdev_split.c index 2783fa281..44f592d8b 100644 --- a/lib/bdev/split/vbdev_split.c +++ b/lib/bdev/split/vbdev_split.c @@ -210,7 +210,7 @@ vbdev_split_dump_config_json(void *ctx, struct spdk_json_write_ctx *w) spdk_json_write_object_begin(w); spdk_json_write_name(w, "base_bdev"); - spdk_json_write_string(w, split_disk->base_bdev->name); + spdk_json_write_string(w, spdk_bdev_get_name(split_disk->base_bdev)); spdk_json_write_name(w, "offset_blocks"); spdk_json_write_uint64(w, split_disk->offset_blocks); @@ -238,7 +238,7 @@ vbdev_split_create(struct spdk_bdev *base_bdev, uint64_t split_count, uint64_t s struct split_base *split_base; if (!spdk_bdev_claim(base_bdev, NULL, NULL)) { - SPDK_ERRLOG("Split bdev %s is already claimed\n", base_bdev->name); + SPDK_ERRLOG("Split bdev %s is already claimed\n", spdk_bdev_get_name(base_bdev)); return -1; } @@ -268,7 +268,7 @@ vbdev_split_create(struct spdk_bdev *base_bdev, uint64_t split_count, uint64_t s SPDK_TRACELOG(SPDK_TRACE_VBDEV_SPLIT, "base_bdev: %s split_count: %" PRIu64 " split_size_bytes: %" PRIu64 "\n", - base_bdev->name, split_count, split_size_bytes); + spdk_bdev_get_name(base_bdev), split_count, split_size_bytes); split_base = calloc(1, sizeof(*split_base)); if (!split_base) { @@ -297,7 +297,7 @@ vbdev_split_create(struct spdk_bdev *base_bdev, uint64_t split_count, uint64_t s d->disk.max_unmap_bdesc_count = base_bdev->max_unmap_bdesc_count; /* Append partition number to the base bdev's name, e.g. Malloc0 -> Malloc0p0 */ - snprintf(d->disk.name, sizeof(d->disk.name), "%sp%" PRIu64, base_bdev->name, i); + snprintf(d->disk.name, sizeof(d->disk.name), "%sp%" PRIu64, spdk_bdev_get_name(base_bdev), i); snprintf(d->disk.product_name, sizeof(d->disk.product_name), "Split Disk"); d->base_bdev = base_bdev; d->offset_bytes = offset_bytes; @@ -308,7 +308,7 @@ vbdev_split_create(struct spdk_bdev *base_bdev, uint64_t split_count, uint64_t s SPDK_TRACELOG(SPDK_TRACE_VBDEV_SPLIT, "Split vbdev %s: base bdev: %s offset_bytes: " "%" PRIu64 " offset_blocks: %" PRIu64 "\n", - d->disk.name, base_bdev->name, d->offset_bytes, d->offset_blocks); + d->disk.name, spdk_bdev_get_name(base_bdev), d->offset_bytes, d->offset_blocks); vbdev_split_base_get_ref(split_base, d); diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index d157f24ea..14d2604bd 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -416,7 +416,7 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd if (!spdk_bdev_claim(bdev, spdk_nvmf_ctrlr_hot_remove, subsystem)) { SPDK_ERRLOG("Subsystem %s: bdev %s is already claimed\n", - subsystem->subnqn, bdev->name); + subsystem->subnqn, spdk_bdev_get_name(bdev)); return -1; } diff --git a/lib/nvmf/virtual.c b/lib/nvmf/virtual.c index 528875b6e..b90d7e235 100644 --- a/lib/nvmf/virtual.c +++ b/lib/nvmf/virtual.c @@ -71,7 +71,7 @@ static void nvmf_virtual_set_dsm(struct spdk_nvmf_session *session) if (!spdk_bdev_io_type_supported(bdev, SPDK_BDEV_IO_TYPE_UNMAP)) { SPDK_TRACELOG(SPDK_TRACE_NVMF, "Subsystem%d Namespace %s does not support unmap - not enabling DSM\n", - i, bdev->name); + i, spdk_bdev_get_name(bdev)); return; } } diff --git a/lib/scsi/dev.c b/lib/scsi/dev.c index f9d181208..012217694 100644 --- a/lib/scsi/dev.c +++ b/lib/scsi/dev.c @@ -179,7 +179,7 @@ spdk_scsi_dev_construct(const char *name, char *lun_name_list[], int *lun_id_lis goto error; } - lun = spdk_scsi_lun_construct(bdev->name, bdev); + lun = spdk_scsi_lun_construct(spdk_bdev_get_name(bdev), bdev); if (lun == NULL) { goto error; } diff --git a/lib/scsi/lun.c b/lib/scsi/lun.c index e0d7f440d..dd72e4e66 100644 --- a/lib/scsi/lun.c +++ b/lib/scsi/lun.c @@ -315,7 +315,7 @@ spdk_scsi_lun_construct(const char *name, struct spdk_bdev *bdev) } if (!spdk_bdev_claim(bdev, spdk_scsi_lun_hot_remove, lun)) { - SPDK_ERRLOG("LUN %s: bdev %s is already claimed\n", name, bdev->name); + SPDK_ERRLOG("LUN %s: bdev %s is already claimed\n", name, spdk_bdev_get_name(bdev)); free(lun); return NULL; } diff --git a/lib/scsi/scsi_bdev.c b/lib/scsi/scsi_bdev.c index d955c7749..f064f67bd 100644 --- a/lib/scsi/scsi_bdev.c +++ b/lib/scsi/scsi_bdev.c @@ -70,7 +70,7 @@ spdk_hex2bin(char ch) } static void -spdk_bdev_scsi_set_local_naa(char *name, uint8_t *buf) +spdk_bdev_scsi_set_local_naa(const char *name, uint8_t *buf) { int i, value, count = 0; uint64_t naa, local_value; @@ -225,23 +225,28 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task, to_be16(vpage->alloc_len, len); break; - case SPDK_SPC_VPD_UNIT_SERIAL_NUMBER: + case SPDK_SPC_VPD_UNIT_SERIAL_NUMBER: { + const char *name = spdk_bdev_get_name(bdev); + hlen = 4; /* PRODUCT SERIAL NUMBER */ - len = strlen(bdev->name) + 1; + len = strlen(name) + 1; if (len > MAX_SERIAL_STRING) { len = MAX_SERIAL_STRING; } - memcpy(vpage->params, bdev->name, len - 1); + memcpy(vpage->params, name, len - 1); vpage->params[len - 1] = 0; /* PAGE LENGTH */ to_be16(vpage->alloc_len, len); break; + } case SPDK_SPC_VPD_DEVICE_IDENTIFICATION: { + const char *name = spdk_bdev_get_name(bdev); + const char *product_name = spdk_bdev_get_product_name(bdev); uint8_t *buf = vpage->params; struct spdk_scsi_desig_desc *desig; @@ -275,7 +280,7 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task, desig->piv = 1; desig->reserved1 = 0; desig->len = 8; - spdk_bdev_scsi_set_local_naa(bdev->name, desig->desig); + spdk_bdev_scsi_set_local_naa(name, desig->desig); len = sizeof(struct spdk_scsi_desig_desc) + 8; buf += sizeof(struct spdk_scsi_desig_desc) + desig->len; @@ -291,8 +296,8 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task, desig->reserved1 = 0; desig->len = 8 + 16 + MAX_SERIAL_STRING; spdk_strcpy_pad(desig->desig, DEFAULT_DISK_VENDOR, 8, ' '); - spdk_strcpy_pad(&desig->desig[8], bdev->product_name, 16, ' '); - spdk_strcpy_pad(&desig->desig[24], bdev->name, MAX_SERIAL_STRING, ' '); + spdk_strcpy_pad(&desig->desig[8], product_name, 16, ' '); + spdk_strcpy_pad(&desig->desig[24], name, MAX_SERIAL_STRING, ' '); len += sizeof(struct spdk_scsi_desig_desc) + 8 + 16 + MAX_SERIAL_STRING; buf += sizeof(struct spdk_scsi_desig_desc) + desig->len; @@ -700,7 +705,7 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task, spdk_strcpy_pad(inqdata->t10_vendor_id, DEFAULT_DISK_VENDOR, 8, ' '); /* PRODUCT IDENTIFICATION */ - spdk_strcpy_pad(inqdata->product_id, bdev->product_name, 16, ' '); + spdk_strcpy_pad(inqdata->product_id, spdk_bdev_get_product_name(bdev), 16, ' '); /* PRODUCT REVISION LEVEL */ spdk_strcpy_pad(inqdata->product_rev, DEFAULT_DISK_REVISION, 4, ' '); diff --git a/test/lib/bdev/bdevio/bdevio.c b/test/lib/bdev/bdevio/bdevio.c index c86f4e4f3..def58037f 100644 --- a/test/lib/bdev/bdevio/bdevio.c +++ b/test/lib/bdev/bdevio/bdevio.c @@ -115,7 +115,7 @@ bdevio_construct_targets(void) } printf(" %s: %" PRIu64 " blocks of %" PRIu32 " bytes (%" PRIu64 " MiB)\n", - bdev->name, + spdk_bdev_get_name(bdev), bdev->blockcnt, bdev->blocklen, (bdev->blockcnt * bdev->blocklen + 1024 * 1024 - 1) / (1024 * 1024)); diff --git a/test/lib/bdev/bdevperf/bdevperf.c b/test/lib/bdev/bdevperf/bdevperf.c index 638dfaeec..a3864b232 100644 --- a/test/lib/bdev/bdevperf/bdevperf.c +++ b/test/lib/bdev/bdevperf/bdevperf.c @@ -126,7 +126,7 @@ bdevperf_construct_targets(void) } if (g_unmap && !spdk_bdev_io_type_supported(bdev, SPDK_BDEV_IO_TYPE_UNMAP)) { - printf("Skipping %s because it does not support unmap\n", bdev->name); + printf("Skipping %s because it does not support unmap\n", spdk_bdev_get_name(bdev)); bdev = spdk_bdev_next(bdev); continue; } @@ -370,7 +370,7 @@ reset_cb(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_status status, void *cb struct io_target *target = task->target; if (status != SPDK_BDEV_IO_STATUS_SUCCESS) { - printf("Reset blockdev=%s failed\n", target->bdev->name); + printf("Reset blockdev=%s failed\n", spdk_bdev_get_name(target->bdev)); target->is_draining = true; g_run_failed = true; } @@ -456,7 +456,7 @@ performance_dump(int io_time) mb_per_second = io_per_second * g_io_size / (1024 * 1024); printf("\r %-20s: %10.2f IO/s %10.2f MB/s\n", - target->bdev->name, io_per_second, + spdk_bdev_get_name(target->bdev), io_per_second, mb_per_second); total_io_per_second += io_per_second; total_mb_per_second += mb_per_second; diff --git a/test/lib/blobfs/fuse/fuse.c b/test/lib/blobfs/fuse/fuse.c index ffadef5c4..1d6e3d9af 100644 --- a/test/lib/blobfs/fuse/fuse.c +++ b/test/lib/blobfs/fuse/fuse.c @@ -247,13 +247,13 @@ construct_targets(void) } if (!spdk_bdev_claim(bdev, NULL, NULL)) { - SPDK_ERRLOG("could not claim bdev %s\n", bdev->name); + SPDK_ERRLOG("could not claim bdev %s\n", spdk_bdev_get_name(bdev)); exit(1); } g_bs_dev = spdk_bdev_create_bs_dev(bdev); - printf("Mounting BlobFS on bdev %s\n", bdev->name); + printf("Mounting BlobFS on bdev %s\n", spdk_bdev_get_name(bdev)); } static void diff --git a/test/lib/nvmf/discovery/discovery_ut.c b/test/lib/nvmf/discovery/discovery_ut.c index a83d85168..2a567ec94 100644 --- a/test/lib/nvmf/discovery/discovery_ut.c +++ b/test/lib/nvmf/discovery/discovery_ut.c @@ -93,6 +93,12 @@ spdk_bdev_claim(struct spdk_bdev *bdev, spdk_bdev_remove_cb_t remove_cb, return true; } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + static int test_transport1_listen_addr_add(struct spdk_nvmf_listen_addr *listen_addr) { diff --git a/test/lib/nvmf/subsystem/subsystem_ut.c b/test/lib/nvmf/subsystem/subsystem_ut.c index 605c7c14c..1a1450487 100644 --- a/test/lib/nvmf/subsystem/subsystem_ut.c +++ b/test/lib/nvmf/subsystem/subsystem_ut.c @@ -159,6 +159,12 @@ spdk_bdev_claim(struct spdk_bdev *bdev, spdk_bdev_remove_cb_t remove_cb, return true; } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + static void test_spdk_nvmf_tgt_listen(void) { diff --git a/test/lib/nvmf/virtual/virtual_ut.c b/test/lib/nvmf/virtual/virtual_ut.c index 4aba78587..fb4f9ff2d 100644 --- a/test/lib/nvmf/virtual/virtual_ut.c +++ b/test/lib/nvmf/virtual/virtual_ut.c @@ -97,6 +97,12 @@ spdk_nvmf_request_complete(struct spdk_nvmf_request *req) return -1; } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + struct spdk_io_channel * spdk_bdev_get_io_channel(struct spdk_bdev *bdev, uint32_t priority) { diff --git a/test/lib/scsi/dev/dev_ut.c b/test/lib/scsi/dev/dev_ut.c index e571b37e3..0d7b23902 100644 --- a/test/lib/scsi/dev/dev_ut.c +++ b/test/lib/scsi/dev/dev_ut.c @@ -59,6 +59,12 @@ spdk_bdev_unregister(struct spdk_bdev *bdev) { } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + static struct spdk_scsi_task * spdk_get_task(uint32_t *owner_task_ctr) { diff --git a/test/lib/scsi/lun/lun_ut.c b/test/lib/scsi/lun/lun_ut.c index 98e22a0a3..6ff6afc6d 100644 --- a/test/lib/scsi/lun/lun_ut.c +++ b/test/lib/scsi/lun/lun_ut.c @@ -135,6 +135,12 @@ spdk_bdev_unclaim(struct spdk_bdev *bdev) { } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + void spdk_scsi_dev_queue_mgmt_task(struct spdk_scsi_dev *dev, struct spdk_scsi_task *task) { diff --git a/test/lib/scsi/scsi_bdev/scsi_bdev_ut.c b/test/lib/scsi/scsi_bdev/scsi_bdev_ut.c index fc1f5faaf..56440defa 100644 --- a/test/lib/scsi/scsi_bdev/scsi_bdev_ut.c +++ b/test/lib/scsi/scsi_bdev/scsi_bdev_ut.c @@ -82,6 +82,18 @@ spdk_bdev_free_io(struct spdk_bdev_io *bdev_io) return -1; } +const char * +spdk_bdev_get_name(const struct spdk_bdev *bdev) +{ + return "test"; +} + +const char * +spdk_bdev_get_product_name(const struct spdk_bdev *bdev) +{ + return "test product"; +} + void spdk_scsi_lun_clear_all(struct spdk_scsi_lun *lun) {