forked from luck/tmp_suning_uos_patched
ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()
Calls to ext4_get_inode_loc() returns with a reference to a buffer head in iloc->bh. The callers of this function in ext4_write_inode() when in no journal mode and in ext4_xattr_fiemap() don't release the buffer head after using it. Addresses-Google-Bug: #2548165 Signed-off-by: Curt Wohlgemuth <curtw@google.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
8b472d739b
commit
fd2dd9fbaf
@ -3879,6 +3879,7 @@ static int ext4_xattr_fiemap(struct inode *inode,
|
||||
physical += offset;
|
||||
length = EXT4_SB(inode->i_sb)->s_inode_size - offset;
|
||||
flags |= FIEMAP_EXTENT_DATA_INLINE;
|
||||
brelse(iloc.bh);
|
||||
} else { /* external block */
|
||||
physical = EXT4_I(inode)->i_file_acl << blockbits;
|
||||
length = inode->i_sb->s_blocksize;
|
||||
|
@ -5385,6 +5385,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
|
||||
(unsigned long long)iloc.bh->b_blocknr);
|
||||
err = -EIO;
|
||||
}
|
||||
brelse(iloc.bh);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user