summaryrefslogtreecommitdiff
path: root/include/linux/genhd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/genhd.h')
-rw-r--r--include/linux/genhd.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 7f7427e00f9c..f2a3a26cdda1 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -378,11 +378,18 @@ static inline void part_dec_in_flight(struct request_queue *q,
atomic_dec(&part_to_disk(part)->part0.in_flight[rw]);
}
-static inline int part_in_flight(struct request_queue *q,
- struct hd_struct *part)
+static inline void part_in_flight(struct request_queue *q,
+ struct hd_struct *part,
+ unsigned int inflight[2])
{
- return atomic_read(&part->in_flight[0]) +
+ inflight[0] = atomic_read(&part->in_flight[0]) +
atomic_read(&part->in_flight[1]);
+ if (part->partno) {
+ part = &part_to_disk(part)->part0;
+ inflight[1] = atomic_read(&part->in_flight[0]) +
+ atomic_read(&part->in_flight[1]);
+ } else
+ inflight[1] = 0;
}
static inline struct partition_meta_info *alloc_part_info(struct gendisk *disk)