[dm-devel] mmotm 2012-06-21-16-20 uploaded (dm-thin)

Alasdair G Kergon agk at redhat.com
Sun Jun 24 18:34:50 UTC 2012


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




More information about the dm-devel mailing list