]>
Commit | Line | Data |
---|---|---|
2cf01268 GKH |
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 | |
5 | ||
6 | From: Mike Snitzer <snitzer@redhat.com> | |
7 | ||
8 | commit 013ad043906b2befd4a9bfb06219ed9fedd92716 upstream. | |
9 | ||
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. | |
12 | ||
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> | |
17 | ||
18 | --- | |
19 | drivers/md/dm-thin-metadata.c | 6 ++---- | |
20 | 1 file changed, 2 insertions(+), 4 deletions(-) | |
21 | ||
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 | |
25 | if (r) { | |
26 | DMERR("could not get size of metadata device"); | |
27 | pmd->metadata_reserve = max_blocks; | |
28 | - } else { | |
29 | - sector_div(total, 10); | |
30 | - pmd->metadata_reserve = min(max_blocks, total); | |
31 | - } | |
32 | + } else | |
33 | + pmd->metadata_reserve = min(max_blocks, div_u64(total, 10)); | |
34 | } | |
35 | ||
36 | struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev, |