dm thin metadata: fix __udivdi3 undefined on 32-bit

sector_div() is only viable for use with sector_t.
dm_block_t is typedef'd to uint64_t -- so use div_u64() instead.

Fixes: 3ab918281 ("dm thin metadata: try to avoid ever aborting transactions")
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
Mike Snitzer 2018-09-13 21:16:20 -04:00
parent 7876320f88
commit 013ad04390

View File

@ -832,10 +832,8 @@ static void __set_metadata_reserve(struct dm_pool_metadata *pmd)
if (r) { if (r) {
DMERR("could not get size of metadata device"); DMERR("could not get size of metadata device");
pmd->metadata_reserve = max_blocks; pmd->metadata_reserve = max_blocks;
} else { } else
sector_div(total, 10); pmd->metadata_reserve = min(max_blocks, div_u64(total, 10));
pmd->metadata_reserve = min(max_blocks, total);
}
} }
struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev, struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev,