1 From 013ad043906b2befd4a9bfb06219ed9fedd92716 Mon Sep 17 00:00:00 2001
2 From: Mike Snitzer <snitzer@redhat.com>
3 Date: Thu, 13 Sep 2018 21:16:20 -0400
4 Subject: dm thin metadata: fix __udivdi3 undefined on 32-bit
6 From: Mike Snitzer <snitzer@redhat.com>
8 commit 013ad043906b2befd4a9bfb06219ed9fedd92716 upstream.
10 sector_div() is only viable for use with sector_t.
11 dm_block_t is typedef'd to uint64_t -- so use div_u64() instead.
13 Fixes: 3ab918281 ("dm thin metadata: try to avoid ever aborting transactions")
14 Signed-off-by: Mike Snitzer <snitzer@redhat.com>
15 Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19 drivers/md/dm-thin-metadata.c | 6 ++----
20 1 file changed, 2 insertions(+), 4 deletions(-)
22 --- a/drivers/md/dm-thin-metadata.c
23 +++ b/drivers/md/dm-thin-metadata.c
24 @@ -843,10 +843,8 @@ static void __set_metadata_reserve(struc
26 DMERR("could not get size of metadata device");
27 pmd->metadata_reserve = max_blocks;
29 - sector_div(total, 10);
30 - pmd->metadata_reserve = min(max_blocks, total);
33 + pmd->metadata_reserve = min(max_blocks, div_u64(total, 10));
36 struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev,