ext4: enable meta_bg only when new desc blocks are needed

This patch addresses an issue observed when resize_inode is disabled
and an online extension of a filesysyem is performed. When a filesystem
is expanded to a size that does not require a addition of a new
descriptor block, the meta_bg feature is being enabled even though no
part of the filesystem uses this layout.

This patch ensures that the meta_bg feature is only enabled if
any of the added block groups utilize meta_bg layout.

Signed-off-by: Srivathsa Dara <srivathsa.d.dara@oracle.com>
Link: https://lore.kernel.org/r/20240227131329.2608466-1-srivathsa.d.dara@oracle.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
Srivathsa Dara 2024-02-27 13:13:29 +00:00 committed by Theodore Ts'o
parent 0efcd739fc
commit 07be778c70

View File

@ -2085,7 +2085,7 @@ retry:
}
}
if ((!resize_inode && !meta_bg) || n_blocks_count == o_blocks_count) {
if ((!resize_inode && !meta_bg && n_desc_blocks > o_desc_blocks) || n_blocks_count == o_blocks_count) {
err = ext4_convert_meta_bg(sb, resize_inode);
if (err)
goto out;