Merge branch 'tt/misc' into dev
This commit is contained in:
@@ -5580,8 +5580,23 @@ static int __ext4_expand_extra_isize(struct inode *inode,
|
||||
{
|
||||
struct ext4_inode *raw_inode;
|
||||
struct ext4_xattr_ibody_header *header;
|
||||
unsigned int inode_size = EXT4_INODE_SIZE(inode->i_sb);
|
||||
struct ext4_inode_info *ei = EXT4_I(inode);
|
||||
int error;
|
||||
|
||||
/* this was checked at iget time, but double check for good measure */
|
||||
if ((EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize > inode_size) ||
|
||||
(ei->i_extra_isize & 3)) {
|
||||
EXT4_ERROR_INODE(inode, "bad extra_isize %u (inode size %u)",
|
||||
ei->i_extra_isize,
|
||||
EXT4_INODE_SIZE(inode->i_sb));
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
if ((new_extra_isize < ei->i_extra_isize) ||
|
||||
(new_extra_isize < 4) ||
|
||||
(new_extra_isize > inode_size - EXT4_GOOD_OLD_INODE_SIZE))
|
||||
return -EINVAL; /* Should never happen */
|
||||
|
||||
raw_inode = ext4_raw_inode(iloc);
|
||||
|
||||
header = IHDR(inode, raw_inode);
|
||||
|
Reference in New Issue
Block a user