On 01/25/2018 04:26 PM, Ross Zwisler wrote:
It used to be that the only PMEM namespaces with a variable sector size
were ones with a BTT, but that has changed. sector_size still doesn't make
sense for device DAX since we don't have a block I/O path, and we also skip
it if we don't have a specified sector size, as happens with namespaces of
devtype nd_namespace_io.
Signed-off-by: Ross Zwisler <ross.zwis...@linux.intel.com>
Reviewed-by: Dave Jiang <dave.ji...@intel.com>
---
util/json.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/util/json.c b/util/json.c
index 95beaa2..89306f0 100644
--- a/util/json.c
+++ b/util/json.c
@@ -718,11 +718,6 @@ struct json_object *util_namespace_to_json(struct
ndctl_namespace *ndns,
goto err;
json_object_object_add(jndns, "uuid", jobj);
- jobj = json_object_new_int(ndctl_btt_get_sector_size(btt));
- if (!jobj)
- goto err;
- json_object_object_add(jndns, "sector_size", jobj);
-
bdev = ndctl_btt_get_block_device(btt);
} else if (pfn) {
ndctl_pfn_get_uuid(pfn, uuid);
@@ -774,6 +769,23 @@ struct json_object *util_namespace_to_json(struct
ndctl_namespace *ndns,
} else
bdev = ndctl_namespace_get_block_device(ndns);
+ jobj = NULL;
+ if (btt) {
+ jobj = json_object_new_int(ndctl_btt_get_sector_size(btt));
+ if (!jobj)
+ goto err;
+ } else if (!dax) {
+ unsigned int sector_size =
ndctl_namespace_get_sector_size(ndns);
+
+ if (sector_size) {
+ jobj = json_object_new_int(sector_size);
+ if (!jobj)
+ goto err;
+ }
+ }
+ if (jobj)
+ json_object_object_add(jndns, "sector_size", jobj);
+
if (bdev && bdev[0]) {
jobj = json_object_new_string(bdev);
if (!jobj)
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm