kernel-ark/fs/ext4
Theodore Ts'o cb53054118 ext4: fix up error handling for mpage_map_and_submit_extent()
The function mpage_released_unused_page() must only be called once;
otherwise the kernel will BUG() when the second call to
mpage_released_unused_page() tries to unlock the pages which had been
unlocked by the first call.

Also restructure the error handling so that we only give up on writing
the dirty pages in the case of ENOSPC where retrying the allocation
won't help.  Otherwise, a transient failure, such as a kmalloc()
failure in calling ext4_map_blocks() might cause us to give up on
those pages, leading to a scary message in /var/log/messages plus data
loss.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
2013-07-01 08:12:40 -04: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: optimize test_root() 2013-06-06 11:40:37 -04: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_extents.h ext4: mext_insert_extents should update extent block checksum 2013-04-19 14:04:12 -04:00
ext4_jbd2.c ext4: provide wrappers for transaction reservation calls 2013-06-04 12:37:50 -04:00
ext4_jbd2.h ext4: use transaction reservation for extent conversion in ext4_end_io 2013-06-04 13:21:11 -04:00
ext4.h ext4: pass inode pointer instead of file pointer to punch hole 2013-07-01 08:12:38 -04:00
extents_status.c ext4: improve extent cache shrink mechanism to avoid to burn CPU time 2013-07-01 08:12:37 -04:00
extents_status.h ext4: improve extent cache shrink mechanism to avoid to burn CPU time 2013-07-01 08:12:37 -04:00
extents.c ext4: pass inode pointer instead of file pointer to punch hole 2013-07-01 08:12:38 -04:00
file.c ext4: fix overflows in SEEK_HOLE, SEEK_DATA implementations 2013-05-31 19:37:56 -04:00
fsync.c ext4: Fix fsync error handling after filesystem abort 2013-06-12 22:38:04 -04:00
hash.c ext4: reduce one "if" comparison in ext4_dirhash() 2013-02-01 22:33:21 -05:00
ialloc.c ext4: provide wrappers for transaction reservation calls 2013-06-04 12:37:50 -04:00
indirect.c ext4: don't use EXT4_FREE_BLOCKS_FORGET unnecessarily 2013-06-12 11:48:29 -04:00
inline.c ext4: improve free space calculation for inline_data 2013-07-01 08:12:37 -04:00
inode.c ext4: fix up error handling for mpage_map_and_submit_extent() 2013-07-01 08:12:40 -04:00
ioctl.c ext4: fix usless declarations 2013-04-09 22:48:36 -04: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: implement error handling of ext4_mb_new_preallocation() 2013-07-01 08:12:36 -04: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: delete unused variables 2013-06-17 08:56:26 -04:00
namei.c ext3,ext4: don't mess with dir_file->f_pos in htree_dirblock_to_tree() 2013-07-01 08:12:38 -04:00
page-io.c ext4: add check to io_submit_init_bio 2013-06-06 10:18:22 -04:00
resize.c ext4: fix corruption when online resizing a fs with 1K block size 2013-07-01 08:12:08 -04:00
super.c ext4: reduce object size when !CONFIG_PRINTK 2013-07-01 08:12:37 -04: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_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
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