linux-uconsole/fs/ext4
Jan Kara 94aa327e13 jbd2: Fix use after free after error in jbd2_journal_dirty_metadata()
commit 91aa11fae1 upstream.

When jbd2_journal_dirty_metadata() returns error,
__ext4_handle_dirty_metadata() stops the handle. However callers of this
function do not count with that fact and still happily used now freed
handle. This use after free can result in various issues but very likely
we oops soon.

The motivation of adding __ext4_journal_stop() into
__ext4_handle_dirty_metadata() in commit 9ea7a0df seems to be only to
improve error reporting. So replace __ext4_journal_stop() with
ext4_journal_abort_handle() which was there before that commit and add
WARN_ON_ONCE() to dump stack to provide useful information.

Reported-by: Sage Weil <sage@inktank.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-20 08:43:05 -07:00
..
acl.c ext4: fix the number of credits needed for acl ops with inline data 2013-02-09 15:23:03 -05:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
balloc.c ext4: fix ext4_get_group_number() 2013-07-21 18:21:33 -07:00
bitmap.c ext4: Checksum the block bitmap properly with bigalloc enabled 2012-10-22 00:34:32 -04:00
block_validity.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
dir.c ext4: fix readdir error in the case of inline_data+dir_index 2013-04-19 17:53:09 -04:00
ext4.h ext4: revert "ext4: use io_end for multiple bios" 2013-05-11 19:07:42 -04:00
ext4_extents.h ext4: mext_insert_extents should update extent block checksum 2013-04-19 14:04:12 -04:00
ext4_jbd2.c jbd2: Fix use after free after error in jbd2_journal_dirty_metadata() 2013-08-20 08:43:05 -07:00
ext4_jbd2.h ext4: improve credit estimate for EXT4_SINGLEDATA_TRANS_BLOCKS 2013-04-09 12:39:26 -04:00
extents.c ext4: fix retry handling in ext4_ext_truncate() 2013-08-14 22:59:05 -07:00
extents_status.c ext4: fix fio regression 2013-05-03 02:15:52 -04:00
extents_status.h ext4: fix fio regression 2013-05-03 02:15:52 -04:00
file.c ext4: fix overflows in SEEK_HOLE, SEEK_DATA implementations 2013-07-21 18:21:32 -07:00
fsync.c ext4/jbd2: don't wait (forever) for stale tid caused by wraparound 2013-04-03 22:02:52 -04:00
hash.c ext4: reduce one "if" comparison in ext4_dirhash() 2013-02-01 22:33:21 -05:00
ialloc.c ext4: make sure group number is bumped after a inode allocation race 2013-08-14 22:59:05 -07:00
indirect.c aio: don't include aio.h in sched.h 2013-05-07 20:16:25 -07:00
inline.c ext4: fix data offset overflow on 32-bit archs in ext4_inline_data_fiemap() 2013-07-21 18:21:32 -07:00
inode.c ext4: fix overflow when counting used blocks on 32-bit architectures 2013-07-21 18:21:32 -07:00
ioctl.c ext4: flush the extent status cache during EXT4_IOC_SWAP_BOOT 2013-08-14 22:59:09 -07:00
Kconfig ext4: fix Kconfig documentation for CONFIG_EXT4_DEBUG 2013-04-21 20:32:03 -04:00
Makefile ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
mballoc.c ext4: don't allow ext4_free_blocks() to fail due to ENOMEM 2013-07-21 18:21:33 -07:00
mballoc.h ext4: use module parameters instead of debugfs for mballoc_debug 2013-02-09 16:28:20 -05:00
migrate.c ext4: do not convert to indirect with bigalloc enabled 2013-04-11 10:54:46 -04:00
mmp.c ext4: mark all metadata I/O with REQ_META 2013-04-20 15:46:17 -04:00
move_extent.c ext4: mext_insert_extents should update extent block checksum 2013-04-19 14:04:12 -04:00
namei.c ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() 2013-07-21 18:21:23 -07:00
page-io.c Fixed regressions (two stability regressions and a performance 2013-05-14 09:30:54 -07:00
resize.c ext4: fix corruption when online resizing a fs with 1K block size 2013-07-21 18:21:23 -07:00
super.c ext4: fix mount/remount error messages for incompatible mount options 2013-08-14 22:59:09 -07:00
symlink.c ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
truncate.h ext4: move common truncate functions to header file 2011-06-27 19:16:04 -04:00
xattr.c ext4: fix miscellaneous big endian warnings 2013-04-09 23:59:55 -04:00
xattr.h ext4: reserve xattr index for Rich ACL support 2013-04-18 14:53:15 -04:00
xattr_security.c Merge branch 'for_linus' into for_linus_merged 2012-01-10 11:54:07 -05:00
xattr_trusted.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
xattr_user.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00