On Fri, Aug 04, 2017 at 09:04:19AM -0600, Jens Axboe wrote: > Instead of returning the count that matches the partition, pass > in an array of two ints. Index 0 will be filled with the inflight > count for the partition in question, and index 1 will filled > with the root infligh count, if the partition passed in is not the > root. > > This is in preparation for being able to calculate both in one > go. One tiny comment below, besides that Reviewed-by: Omar Sandoval <osandov@xxxxxx> > Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> > diff --git a/include/linux/genhd.h b/include/linux/genhd.h > index 7f7427e00f9c..a9c8ea632fdc 100644 > --- a/include/linux/genhd.h > +++ b/include/linux/genhd.h > @@ -378,11 +378,17 @@ 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]); It makes me a little nervous here that we only initialize inflight[1] if part is not part0, that seems a little subtle and easy to miss. Can we change the line above to this? inflight[0] = inflight[1] = (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]); > + } > } > > static inline struct partition_meta_info *alloc_part_info(struct gendisk *disk) > -- > 2.7.4 >