Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2856922c authored by Frederic Bohe's avatar Frederic Bohe Committed by Theodore Ts'o
Browse files

Ext4: Fix online resize block group descriptor corruption



This is the patch for the group descriptor table corruption during
online resize pointed out by Theodore Tso.  The problem was caused by
the fact that the ext4 group descriptor can be either 32 or 64 bytes
long.  Only the 64 bytes structure was taken into account.

Signed-off-by: default avatarFrederic Bohe <frederic.bohe@bull.net>
Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 5dd34572
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -855,7 +855,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
	 */
	 */


	/* Update group descriptor block for new group */
	/* Update group descriptor block for new group */
	gdp = (struct ext4_group_desc *)primary->b_data + gdb_off;
	gdp = (struct ext4_group_desc *)((char *)primary->b_data +
					 gdb_off * EXT4_DESC_SIZE(sb));


	ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */
	ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */
	ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */
	ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */