Messages in this thread | | | Subject | Re: [PATCH v3 1/2] dm-unstripe: unstripe RAID 0/dm-striped device | From | Randy Dunlap <> | Date | Fri, 15 Dec 2017 11:55:26 -0800 |
| |
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
| |