bdev: add getters for bdev name and product name
Change-Id: I6a75fada94fa845ecedd4cd8afc78f4259df14fe Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
6973898164
commit
1bcf22cde1
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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, ' ');
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user