[dm-devel] [PATCH v3 1/2] dm-unstripe: unstripe RAID 0/dm-striped device

Randy Dunlap rdunlap at infradead.org
Fri Dec 15 19:55:26 UTC 2017


On 12/15/2017 07:27 AM, Scott Bauer wrote:
> [snip]
> On Wed, Dec 13, 2017 at 04:11:44PM -0800, Randy Dunlap wrote:
>>
>> 	                                  >=
>>
> 
> Thanks, good catch.
> 
> 
>>> +	tot_sec = i_size_read(bbdev->bd_inode) >> SECTOR_SHIFT;
>>> +	mod = tot_sec % target->chunk_sectors;
>>
>> Did you build this on 32-bit also?  Is that '%' OK on 32-bit?
> 
> I've looked at this a bit and still can't figure out why this
> modulo operation would operate differently on a 32 versus a 64
> bit platform? I know sector_t is config dependent but the
> sector_t should be promoted to 64 bit width during the modulo
> operation.
> 
> Are you wondering whether sector_t is the right type for any of
> the math in this file? Perhaps we should be safe and only use
> u64s?

Just wondering if it causes a call to some glibc __mod() function
and if so, the code should be using sector_div() -- oops, that's
a divide and you want a modulus.  Oh well, we can address it if
it becomes a problem.


-- 
~Randy




More information about the dm-devel mailing list