|
@@ -248,11 +248,19 @@ ssize_t part_stat_show(struct device *dev,
|
|
|
part_stat_read(p, merges[WRITE]),
|
|
|
(unsigned long long)part_stat_read(p, sectors[WRITE]),
|
|
|
jiffies_to_msecs(part_stat_read(p, ticks[WRITE])),
|
|
|
- p->in_flight,
|
|
|
+ part_in_flight(p),
|
|
|
jiffies_to_msecs(part_stat_read(p, io_ticks)),
|
|
|
jiffies_to_msecs(part_stat_read(p, time_in_queue)));
|
|
|
}
|
|
|
|
|
|
+ssize_t part_inflight_show(struct device *dev,
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
+{
|
|
|
+ struct hd_struct *p = dev_to_part(dev);
|
|
|
+
|
|
|
+ return sprintf(buf, "%8u %8u\n", p->in_flight[0], p->in_flight[1]);
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_FAIL_MAKE_REQUEST
|
|
|
ssize_t part_fail_show(struct device *dev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
@@ -281,6 +289,7 @@ static DEVICE_ATTR(start, S_IRUGO, part_start_show, NULL);
|
|
|
static DEVICE_ATTR(size, S_IRUGO, part_size_show, NULL);
|
|
|
static DEVICE_ATTR(alignment_offset, S_IRUGO, part_alignment_offset_show, NULL);
|
|
|
static DEVICE_ATTR(stat, S_IRUGO, part_stat_show, NULL);
|
|
|
+static DEVICE_ATTR(inflight, S_IRUGO, part_inflight_show, NULL);
|
|
|
#ifdef CONFIG_FAIL_MAKE_REQUEST
|
|
|
static struct device_attribute dev_attr_fail =
|
|
|
__ATTR(make-it-fail, S_IRUGO|S_IWUSR, part_fail_show, part_fail_store);
|
|
@@ -292,6 +301,7 @@ static struct attribute *part_attrs[] = {
|
|
|
&dev_attr_size.attr,
|
|
|
&dev_attr_alignment_offset.attr,
|
|
|
&dev_attr_stat.attr,
|
|
|
+ &dev_attr_inflight.attr,
|
|
|
#ifdef CONFIG_FAIL_MAKE_REQUEST
|
|
|
&dev_attr_fail.attr,
|
|
|
#endif
|