From b609d01e6d200638aad42adee922f91d91e3e642 Mon Sep 17 00:00:00 2001 From: "Kiselev, Oleg" Date: Sat, 14 May 2022 04:17:09 +0000 Subject: [PATCH] resize2fs: trim resize to cluster boundary This patch rounds down the size provided to resize2fs to the nearest cluster boundary for bigalloc filesystems. This is similar to the trimming already done for page boundary alignment. Aligning the size in the user space provides the right value feedback from the resize2fs command, which is a better user experience than trimming the size in the kernel. Signed-off-by: Oleg Kiselev Signed-off-by: Theodore Ts'o --- resize/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resize/main.c b/resize/main.c index c1338fb..d2ba344 100644 --- a/resize/main.c +++ b/resize/main.c @@ -537,6 +537,12 @@ int main (int argc, char ** argv) goto errout; } } + + /* If using cluster allocations, trim down to a cluster boundary */ + if (ext2fs_has_feature_bigalloc(fs->super)) { + new_size &= ~((blk64_t)(1 << fs->cluster_ratio_bits) - 1); + } + new_group_desc_count = ext2fs_div64_ceil(new_size - fs->super->s_first_data_block, EXT2_BLOCKS_PER_GROUP(fs->super)); -- 1.8.3.1