Commit f7763720 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull ext4 regression fixes from Ted Ts'o:
 "Bug fixes, including two regressions introduced in v3.8.  The most
  serious of these regressions is a buffer cache leak."

* tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  ext4: remove duplicate call to ext4_bread() in ext4_init_new_dir()
  ext4: release buffer in failed path in dx_probe()
  ext4: fix configuration dependencies for ext4 ACLs and security labels
parents 4c9014f2 fef0ebdb
...@@ -41,6 +41,7 @@ config EXT4_USE_FOR_EXT23 ...@@ -41,6 +41,7 @@ config EXT4_USE_FOR_EXT23
config EXT4_FS_POSIX_ACL config EXT4_FS_POSIX_ACL
bool "Ext4 POSIX Access Control Lists" bool "Ext4 POSIX Access Control Lists"
depends on EXT4_FS
select FS_POSIX_ACL select FS_POSIX_ACL
help help
POSIX Access Control Lists (ACLs) support permissions for users and POSIX Access Control Lists (ACLs) support permissions for users and
...@@ -53,6 +54,7 @@ config EXT4_FS_POSIX_ACL ...@@ -53,6 +54,7 @@ config EXT4_FS_POSIX_ACL
config EXT4_FS_SECURITY config EXT4_FS_SECURITY
bool "Ext4 Security Labels" bool "Ext4 Security Labels"
depends on EXT4_FS
help help
Security labels support alternative access control models Security labels support alternative access control models
implemented by security modules like SELinux. This option implemented by security modules like SELinux. This option
......
...@@ -722,7 +722,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, ...@@ -722,7 +722,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir,
ext4_warning(dir->i_sb, "Node failed checksum"); ext4_warning(dir->i_sb, "Node failed checksum");
brelse(bh); brelse(bh);
*err = ERR_BAD_DX_DIR; *err = ERR_BAD_DX_DIR;
goto fail; goto fail2;
} }
set_buffer_verified(bh); set_buffer_verified(bh);
...@@ -2368,7 +2368,6 @@ static int ext4_init_new_dir(handle_t *handle, struct inode *dir, ...@@ -2368,7 +2368,6 @@ static int ext4_init_new_dir(handle_t *handle, struct inode *dir,
} }
inode->i_size = EXT4_I(inode)->i_disksize = blocksize; inode->i_size = EXT4_I(inode)->i_disksize = blocksize;
dir_block = ext4_bread(handle, inode, 0, 1, &err);
if (!(dir_block = ext4_bread(handle, inode, 0, 1, &err))) { if (!(dir_block = ext4_bread(handle, inode, 0, 1, &err))) {
if (!err) { if (!err) {
err = -EIO; err = -EIO;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment