Fix buffer head reference leaks in ext4_write_inode() and ext4_xattr_fiemap(). Signed-off-by: Curt Wohlgemuth <curtw@xxxxxxxxxx> --- ext4_get_inode_loc() returns with a reference to the iloc->bh; the two call sites below do not release this reference. diff -uprN orig/fs/ext4/extents.c new/fs/ext4/extents.c --- orig/fs/ext4/extents.c 2010-03-22 08:16:57.000000000 -0700 +++ new/fs/ext4/extents.c 2010-03-22 08:35:40.000000000 -0700 @@ -3879,6 +3879,7 @@ static int ext4_xattr_fiemap(struct inod 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; diff -uprN orig/fs/ext4/inode.c new/fs/ext4/inode.c --- orig/fs/ext4/inode.c 2010-03-22 08:16:57.000000000 -0700 +++ new/fs/ext4/inode.c 2010-03-22 08:36:18.000000000 -0700 @@ -5385,6 +5385,7 @@ int ext4_write_inode(struct inode *inode (unsigned long long)iloc.bh->b_blocknr); err = -EIO; } + brelse(iloc.bh); } return err; } -- 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