On Sun, Jun 24, 2012 at 05:55:55PM +0100, Alasdair G Kergon wrote: > Ah yes, I'll fix that, and check we handle "too large" devices sensibly. What does it mean when sector_t is 32 bits but dm_block_t is 64 bits? - You're loading a large pool device you created on a system where sector_t was 64 bits? (and we refuse to load this device) - The top 32 bits of dm_block_t would always be zero so we should make dm_block_t match the type of sector_t? (Because blocks are bigger than sectors?) int sm_ll_extend(struct ll_disk *ll, dm_block_t extra_blocks) old_blocks = dm_sector_div_up(ll->nr_blocks, ll->entries_per_block); [ll->nr_blocks is 64 bits] #define dm_sector_div_up(n, sz) ( \ { \ sector_t _r = ((n) + (sz) - 1); \ [sector_t might be 32 bits => truncation] sector_div(_r, (sz)); \ _r; \ } \ ) Alasdair -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel