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: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
418c12d08d
commit
443a8c41cd
|
@ -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 +
|
||||
|
|
Loading…
Reference in New Issue