From 23d820f09112794a1a85ba798fea6551b78f974d Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Sun, 28 May 2023 02:15:12 -0700 Subject: [PATCH] sys/vfs/hammer2: Use howmany() to calculate bulkfree bmap size Note that the calculation here is based on the ratio below. 1GB (layer1 size) : 32KB (layer1 bmap total) = hmp->total_size : size --- sys/vfs/hammer2/hammer2_bulkfree.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sys/vfs/hammer2/hammer2_bulkfree.c b/sys/vfs/hammer2/hammer2_bulkfree.c index 2169af4408..f4b95593a1 100644 --- a/sys/vfs/hammer2/hammer2_bulkfree.c +++ b/sys/vfs/hammer2/hammer2_bulkfree.c @@ -548,16 +548,13 @@ hammer2_bulkfree_pass(hammer2_dev_t *hmp, hammer2_chain_t *vchain, #define HAMMER2_FREEMAP_SIZEDIV \ (HAMMER2_FREEMAP_LEVEL1_SIZE / HAMMER2_FREEMAP_LEVELN_PSIZE) -#define HAMMER2_FREEMAP_SIZEMASK (HAMMER2_FREEMAP_SIZEDIV - 1) /* * Cap at the size needed to cover the whole volume to avoid * making an unnecessarily large allocation. */ - if (size > hmp->total_size / HAMMER2_FREEMAP_SIZEDIV) { - size = (hmp->total_size + HAMMER2_FREEMAP_SIZEMASK) / - HAMMER2_FREEMAP_SIZEDIV; - } + if (size > hmp->total_size / HAMMER2_FREEMAP_SIZEDIV) + size = howmany(hmp->total_size, HAMMER2_FREEMAP_SIZEDIV); /* * Minimum bitmap buffer size, then align to a LEVELN_PSIZE (32K) -- 2.11.4.GIT