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

Reply via email to