diff --git a/CHANGELOG.md b/CHANGELOG.md index c8de91825..563e93d85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ Added `spdk_bdev_get_write_unit_size()` function for retrieving required number of logical blocks for write operation. +New zone-related fields were added to the result of the `get_bdevs` RPC call: + - `zoned`: indicates whether the device is zoned or a regular + block device + - `zone_size`: number of blocks in a single zone + - `max_open_zones`: maximum number of open zones + - `optimal_open_zones`: optimal number of open zones +The `zoned` field is a boolean and is always present, while the rest is only available for zoned +bdevs. + ### nvmf The `spdk_nvmf_tgt_create` function now accepts an object of type `spdk_nvmf_target_opts` diff --git a/doc/jsonrpc.md b/doc/jsonrpc.md index bb808c328..e0943fbb7 100644 --- a/doc/jsonrpc.md +++ b/doc/jsonrpc.md @@ -611,6 +611,7 @@ Example response: "block_size": 512, "num_blocks": 20480, "claimed": false, + "zoned": false, "supported_io_types": { "read": true, "write": true, diff --git a/module/bdev/rpc/bdev_rpc.c b/module/bdev/rpc/bdev_rpc.c index 8500c68a7..1c833085c 100644 --- a/module/bdev/rpc/bdev_rpc.c +++ b/module/bdev/rpc/bdev_rpc.c @@ -267,6 +267,13 @@ spdk_rpc_dump_bdev_info(struct spdk_json_write_ctx *w, spdk_json_write_named_bool(w, "claimed", (bdev->internal.claim_module != NULL)); + spdk_json_write_named_bool(w, "zoned", bdev->zoned); + if (bdev->zoned) { + spdk_json_write_named_uint64(w, "zone_size", bdev->zone_size); + spdk_json_write_named_uint64(w, "max_open_zones", bdev->max_open_zones); + spdk_json_write_named_uint64(w, "optimal_open_zones", bdev->optimal_open_zones); + } + spdk_json_write_named_object_begin(w, "supported_io_types"); spdk_json_write_named_bool(w, "read", spdk_bdev_io_type_supported(bdev, SPDK_BDEV_IO_TYPE_READ)); diff --git a/test/spdkcli/match_files/spdkcli_details_vhost.test.match b/test/spdkcli/match_files/spdkcli_details_vhost.test.match index 735771cf2..afab7ba56 100644 --- a/test/spdkcli/match_files/spdkcli_details_vhost.test.match +++ b/test/spdkcli/match_files/spdkcli_details_vhost.test.match @@ -27,5 +27,6 @@ "write": $(S), "write_zeroes": $(S) }, - "uuid": "$(S)" + "uuid": "$(S)", + "zoned": false }