kernel-hacking-2024-linux-s.../fs/ext4
Curt Wohlgemuth e0fd9b9076 ext4: mark multi-page IO complete on mapping failure
In mpage_da_map_and_submit(), if we have a delayed block
allocation failure from ext4_map_blocks(), we need to mark
the IO as complete, by setting

      mpd->io_done = 1;

Otherwise, we could end up submitting the pages in an outer
loop; since they are unlocked on mapping failure in
ext4_da_block_invalidatepages(), this will cause a bug check
in mpage_da_submit_io().

I tested this by injected failures into ext4_map_blocks().
Without this patch, a simple fsstress run will bug check;
with the patch, it works fine.

Signed-off-by: Curt Wohlgemuth <curtw@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-02-26 12:25:52 -05:00
..
acl.c ext2,3,4: provide simple rcu-walk ACL implementation 2011-01-07 17:50:30 +11:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
balloc.c ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED 2011-01-10 12:12:36 -05:00
bitmap.c
block_validity.c
dir.c ext4: Use ext4_error_file() to print the pathname to the corrupted inode 2011-01-10 12:10:55 -05:00
ext4.h ext4: serialize unaligned asynchronous DIO 2011-02-12 08:17:34 -05:00
ext4_extents.h ext4: drop ec_type from the ext4_ext_cache structure 2011-01-10 12:13:26 -05:00
ext4_jbd2.c
ext4_jbd2.h ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary 2011-01-10 12:29:43 -05:00
extents.c ext4: Fix sparse warning: Using plain integer as NULL pointer 2011-02-21 21:01:42 -05:00
file.c ext4: serialize unaligned asynchronous DIO 2011-02-12 08:17:34 -05:00
fsync.c ext4: flush the i_completed_io_list during ext4_truncate 2011-01-10 12:47:05 -05:00
hash.c
ialloc.c ext4: Fix sparse warning: Using plain integer as NULL pointer 2011-02-21 21:01:42 -05:00
inode.c ext4: mark multi-page IO complete on mapping failure 2011-02-26 12:25:52 -05:00
ioctl.c ext4: Adjust minlen with discard_granularity in the FITRIM ioctl 2011-02-23 17:49:51 -05:00
Kconfig
Makefile
mballoc.c ext4: mballoc: don't replace the current preallocation group unnecessarily 2011-02-24 14:10:05 -05:00
mballoc.h ext4: clarify description of ac_g_ex in struct ext4_allocation_context 2011-02-24 14:10:00 -05:00
migrate.c ext4: Fix sparse warning: Using plain integer as NULL pointer 2011-02-21 21:01:42 -05:00
move_extent.c
namei.c ext4: add error checking to calls to ext4_handle_dirty_metadata() 2011-01-10 12:46:59 -05:00
page-io.c ext4: Fix sparse warning: Using plain integer as NULL pointer 2011-02-21 21:01:42 -05:00
resize.c ext4: fix compile warnings with EXT4FS_DEBUG enabled 2011-02-21 20:39:58 -05:00
super.c ext4: enable acls and user_xattr by default 2011-02-23 17:51:51 -05:00
symlink.c
xattr.c ext4: Fix sparse warning: Using plain integer as NULL pointer 2011-02-21 21:01:42 -05:00
xattr.h
xattr_security.c
xattr_trusted.c
xattr_user.c