diff options
| -rw-r--r-- | drivers/dax/bus.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index a410154d75fb..28c3324271ac 100644 --- a/drivers/dax/bus.c +++ b/drivers/dax/bus.c | |||
| @@ -279,13 +279,41 @@ static ssize_t size_show(struct device *dev, | |||
| 279 | } | 279 | } |
| 280 | static DEVICE_ATTR_RO(size); | 280 | static DEVICE_ATTR_RO(size); |
| 281 | 281 | ||
| 282 | static int dev_dax_target_node(struct dev_dax *dev_dax) | ||
| 283 | { | ||
| 284 | struct dax_region *dax_region = dev_dax->region; | ||
| 285 | |||
| 286 | return dax_region->target_node; | ||
| 287 | } | ||
| 288 | |||
| 289 | static ssize_t target_node_show(struct device *dev, | ||
| 290 | struct device_attribute *attr, char *buf) | ||
| 291 | { | ||
| 292 | struct dev_dax *dev_dax = to_dev_dax(dev); | ||
| 293 | |||
| 294 | return sprintf(buf, "%d\n", dev_dax_target_node(dev_dax)); | ||
| 295 | } | ||
| 296 | static DEVICE_ATTR_RO(target_node); | ||
| 297 | |||
| 298 | static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n) | ||
| 299 | { | ||
| 300 | struct device *dev = container_of(kobj, struct device, kobj); | ||
| 301 | struct dev_dax *dev_dax = to_dev_dax(dev); | ||
| 302 | |||
| 303 | if (a == &dev_attr_target_node.attr && dev_dax_target_node(dev_dax) < 0) | ||
| 304 | return 0; | ||
| 305 | return a->mode; | ||
| 306 | } | ||
| 307 | |||
| 282 | static struct attribute *dev_dax_attributes[] = { | 308 | static struct attribute *dev_dax_attributes[] = { |
| 283 | &dev_attr_size.attr, | 309 | &dev_attr_size.attr, |
| 310 | &dev_attr_target_node.attr, | ||
| 284 | NULL, | 311 | NULL, |
| 285 | }; | 312 | }; |
| 286 | 313 | ||
| 287 | static const struct attribute_group dev_dax_attribute_group = { | 314 | static const struct attribute_group dev_dax_attribute_group = { |
| 288 | .attrs = dev_dax_attributes, | 315 | .attrs = dev_dax_attributes, |
| 316 | .is_visible = dev_dax_visible, | ||
| 289 | }; | 317 | }; |
| 290 | 318 | ||
| 291 | static const struct attribute_group *dax_attribute_groups[] = { | 319 | static const struct attribute_group *dax_attribute_groups[] = { |
