|
@@ -1447,6 +1447,15 @@ out:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static ssize_t o2hb_region_pid_read(struct o2hb_region *reg,
|
|
|
+ char *page)
|
|
|
+{
|
|
|
+ if (!reg->hr_task)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ return sprintf(page, "%u\n", reg->hr_task->pid);
|
|
|
+}
|
|
|
+
|
|
|
struct o2hb_region_attribute {
|
|
|
struct configfs_attribute attr;
|
|
|
ssize_t (*show)(struct o2hb_region *, char *);
|
|
@@ -1485,11 +1494,19 @@ static struct o2hb_region_attribute o2hb_region_attr_dev = {
|
|
|
.store = o2hb_region_dev_write,
|
|
|
};
|
|
|
|
|
|
+static struct o2hb_region_attribute o2hb_region_attr_pid = {
|
|
|
+ .attr = { .ca_owner = THIS_MODULE,
|
|
|
+ .ca_name = "pid",
|
|
|
+ .ca_mode = S_IRUGO | S_IRUSR },
|
|
|
+ .show = o2hb_region_pid_read,
|
|
|
+};
|
|
|
+
|
|
|
static struct configfs_attribute *o2hb_region_attrs[] = {
|
|
|
&o2hb_region_attr_block_bytes.attr,
|
|
|
&o2hb_region_attr_start_block.attr,
|
|
|
&o2hb_region_attr_blocks.attr,
|
|
|
&o2hb_region_attr_dev.attr,
|
|
|
+ &o2hb_region_attr_pid.attr,
|
|
|
NULL,
|
|
|
};
|
|
|
|