Whamcloud - gitweb
resize2fs: trim resize to cluster boundary
authorKiselev, Oleg <okiselev@amazon.com>
Sat, 14 May 2022 04:17:09 +0000 (04:17 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 11 Aug 2022 14:06:10 +0000 (10:06 -0400)
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 <okiselev@amazon.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
resize/main.c

index c1338fb..d2ba344 100644 (file)
@@ -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));