|
@@ -237,6 +237,13 @@ ssize_t part_size_show(struct device *dev,
|
|
|
return sprintf(buf, "%llu\n",(unsigned long long)p->nr_sects);
|
|
|
}
|
|
|
|
|
|
+ssize_t part_ro_show(struct device *dev,
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
+{
|
|
|
+ struct hd_struct *p = dev_to_part(dev);
|
|
|
+ return sprintf(buf, "%d\n", p->policy ? 1 : 0);
|
|
|
+}
|
|
|
+
|
|
|
ssize_t part_alignment_offset_show(struct device *dev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
@@ -312,6 +319,7 @@ ssize_t part_fail_store(struct device *dev,
|
|
|
static DEVICE_ATTR(partition, S_IRUGO, part_partition_show, NULL);
|
|
|
static DEVICE_ATTR(start, S_IRUGO, part_start_show, NULL);
|
|
|
static DEVICE_ATTR(size, S_IRUGO, part_size_show, NULL);
|
|
|
+static DEVICE_ATTR(ro, S_IRUGO, part_ro_show, NULL);
|
|
|
static DEVICE_ATTR(alignment_offset, S_IRUGO, part_alignment_offset_show, NULL);
|
|
|
static DEVICE_ATTR(discard_alignment, S_IRUGO, part_discard_alignment_show,
|
|
|
NULL);
|
|
@@ -326,6 +334,7 @@ static struct attribute *part_attrs[] = {
|
|
|
&dev_attr_partition.attr,
|
|
|
&dev_attr_start.attr,
|
|
|
&dev_attr_size.attr,
|
|
|
+ &dev_attr_ro.attr,
|
|
|
&dev_attr_alignment_offset.attr,
|
|
|
&dev_attr_discard_alignment.attr,
|
|
|
&dev_attr_stat.attr,
|