libnvdimm, region: hide persistence_domain when unknown
authorDan Williams <dan.j.williams@intel.com>
Wed, 21 Mar 2018 21:06:23 +0000 (14:06 -0700)
committerDan Williams <dan.j.williams@intel.com>
Wed, 21 Mar 2018 21:06:23 +0000 (14:06 -0700)
Similar to other region attributes, do not emit the persistence_domain
attribute if its contents are empty.

Fixes: 96c3a239054a ("libnvdimm: expose platform persistence attr...")
Cc: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/region_devs.c

index e6d01911e0920db0ed1b577b5422d64d81a129ed..a8e9d428c0a53df5110a9f93f48259276748b71a 100644 (file)
@@ -593,6 +593,13 @@ static umode_t region_visible(struct kobject *kobj, struct attribute *a, int n)
                        return 0;
        }
 
+       if (a == &dev_attr_persistence_domain.attr) {
+               if ((nd_region->flags & (BIT(ND_REGION_PERSIST_CACHE)
+                                       | BIT(ND_REGION_PERSIST_MEMCTRL))) == 0)
+                       return 0;
+               return a->mode;
+       }
+
        if (a != &dev_attr_set_cookie.attr
                        && a != &dev_attr_available_size.attr)
                return a->mode;