Re: [PATCH 3/6] block: make part_in_flight() take an array of two ints

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/08/2017 04:42 PM, Omar Sandoval wrote:
> 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]));

Yes good point, I'll make that change.

-- 
Jens Axboe




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux