On Wed, Aug 03, 2016 at 12:39:45PM +0200, Jan Kara wrote: > The code in ext4_expand_extra_isize_ea() treated new_extra_isize > argument sometimes as the desired target i_extra_isize and sometimes as > the amount by which we need to grow current i_extra_isize. These happen > to coincide when i_extra_isize is 0 which used to be the common case and > so nobody noticed this until recently when we added i_projid to the > inode and so i_extra_isize now needs to grow from 28 to 32 bytes. > > The result of these bugs was that we sometimes unnecessarily decided to > move xattrs out of inode even if there was enough space and we often > ended up corrupting in-inode xattrs because arguments to > ext4_xattr_shift_entries() were just wrong. This could demonstrate > itself as BUG_ON in ext4_xattr_shift_entries() triggering. > > Fix the problem by introducing new isize_diff variable and use it where > appropriate. > > CC: <stable@xxxxxxxxxxxxxxx> # 4.4.x- > Reported-by: Dave Chinner <david@xxxxxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> Thanks, applied. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html