[PATCH v2 1/3] xfs: use b_maps[] for discontiguous buffers

Mark Tinguely tinguely at sgi.com
Fri Nov 30 11:55:08 CST 2012


On 11/30/12 10:09, Christoph Hellwig wrote:
>>   use_alloc_page:
>> -	start = BBTOB(bp->b_map.bm_bn)>>  PAGE_SHIFT;
>> -	end = (BBTOB(bp->b_map.bm_bn + bp->b_length) + PAGE_SIZE - 1)
>> +	start = BBTOB(bp->b_maps[0].bm_bn)>>  PAGE_SHIFT;
>> +	end = (BBTOB(bp->b_maps[0].bm_bn + bp->b_length) + PAGE_SIZE - 1)
>
> Btw, how is this logic supposed to work for discontiguous buffers?
>
> Each of them might straddle boundaries individually, so doing the
> start/end calculation for the number of pages isn't going to be correct.
>

eeek. yep, I will loop through and count the pages needed in each
segment.

--Mark.



More information about the xfs mailing list