diff options
author | Vasily Averin <vvs@virtuozzo.com> | 2018-11-07 19:07:01 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-11-21 11:27:43 +0300 |
commit | 0d9902d43fb696d460c29ef4ee0b86ce6ddc9a15 (patch) | |
tree | 51b6feab1dcd0040f552a8d65337ee50b91a2f2e | |
parent | 761ff77def544b52954334db2923feb1a947cebf (diff) | |
download | linux-0d9902d43fb696d460c29ef4ee0b86ce6ddc9a15.tar.xz |
ext4: release bs.bh before re-using in ext4_xattr_block_find()
commit 45ae932d246f721e6584430017176cbcadfde610 upstream.
bs.bh was taken in previous ext4_xattr_block_find() call,
it should be released before re-using
Fixes: 7e01c8e5420b ("ext3/4: fix uninitialized bs in ...")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org # 2.6.26
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | fs/ext4/xattr.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index 16cf24dc9c34..1022c17fc1a1 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -1161,6 +1161,8 @@ ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, error = ext4_xattr_block_set(handle, inode, &i, &bs); } else if (error == -ENOSPC) { if (EXT4_I(inode)->i_file_acl && !bs.s.base) { + brelse(bs.bh); + bs.bh = NULL; error = ext4_xattr_block_find(inode, &i, &bs); if (error) goto cleanup; |