diff mbox series

resize2fs: trim resize to cluster boundary

Message ID FD65D2E2-16C1-48D6-8CB3-BA09CC35E6DB@amazon.com
State Accepted
Headers show
Series resize2fs: trim resize to cluster boundary | expand

Commit Message

Kiselev, Oleg May 14, 2022, 4:17 a.m. UTC
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>
---
 resize/main.c | 6 ++++++
 1 file changed, 6 insertions(+)

--
2.32.0

Comments

Theodore Ts'o Aug. 11, 2022, 2:32 p.m. UTC | #1
On Sat, 14 May 2022 04:17:09 +0000, Kiselev, Oleg wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/1] resize2fs: trim resize to cluster boundary
      commit: b609d01e6d200638aad42adee922f91d91e3e642

Best regards,
diff mbox series

Patch

diff --git a/resize/main.c b/resize/main.c
index bceaa1677e21..93a1d5a260e1 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));