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

Commit 443a8c41 authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o
Browse files

ext4: properly align shifted xattrs when expanding inodes



We did not count with the padding of xattr value when computing desired
shift of xattrs in the inode when expanding i_extra_isize. As a result
we could create unaligned start of inline xattrs. Account for alignment
properly.

CC: stable@vger.kernel.org  # 4.4.x-
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent 418c12d0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1522,7 +1522,7 @@ int ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize,
		if (entry_size + EXT4_XATTR_SIZE(size) >= isize_diff)
			shift_bytes = isize_diff;
		else
			shift_bytes = entry_size + size;
			shift_bytes = entry_size + EXT4_XATTR_SIZE(size);
		/* Adjust the offsets and shift the remaining entries ahead */
		ext4_xattr_shift_entries(entry, -shift_bytes,
			(void *)raw_inode + EXT4_GOOD_OLD_INODE_SIZE +