[PATCH] resize2fs: account for META_BG in group descriptor check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The block group descriptor count sanity check added in 21bad2b6797f
("resize2fs: prevent block group descriptors from overflowing the first
bg") prevents enlarging the filesystem when the block group descriptors
would not fit in the first block group.

However, this does not take into account the META_BG feature in which
case not all the descriptors need to be stored in the first block group.

This prevents, for example, enlarging filesystems with 4KiB block size
past 256TiB.

Relax the check to allow resizing META_BG filesystems past the limit.

Also, always allow on-line resizing as the kernel takes care of
converting the filesystem to use META_BG when needed.

Link: https://github.com/tytso/e2fsprogs/issues/117
Fixes: 21bad2b6797f ("resize2fs: prevent block group descriptors from overflowing the first bg")
Signed-off-by: Anssi Hannula <anssi.hannula@xxxxxx>
---
 resize/main.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/resize/main.c b/resize/main.c
index f914c050..8c626202 100644
--- a/resize/main.c
+++ b/resize/main.c
@@ -556,11 +556,13 @@ int main (int argc, char ** argv)
 						 EXT2_BLOCKS_PER_GROUP(fs->super));
 	new_desc_blocks = ext2fs_div_ceil(new_group_desc_count,
 					  EXT2_DESC_PER_BLOCK(fs->super));
-	if ((new_desc_blocks + fs->super->s_first_data_block) >
+	if (!ext2fs_has_feature_meta_bg(fs->super) &&
+	    !(mount_flags & EXT2_MF_MOUNTED) &&
+	    (new_desc_blocks + fs->super->s_first_data_block) >
 	    EXT2_BLOCKS_PER_GROUP(fs->super)) {
 		com_err(program_name, 0,
-			_("New size results in too many block group "
-			  "descriptors.\n"));
+			_("New size requires on-line resizing for meta_bg "
+			  "conversion, please mount the filesystem first\n"));
 		goto errout;
 	}
 
-- 
2.41.0




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux