linux/fs/ext4
Allison Henderson 2be4751b21 ext4: fix 2nd xfstests 127 punch hole failure
This patch fixes a second punch hole bug found by xfstests 127.

This bug happens because punch hole needs to flush the pages
of the hole to avoid race conditions.  But if the end of the
hole is in the same page as i_size, the buffer heads beyond
i_size need to be unmapped and the page needs to be zeroed
after it is flushed.

To correct this, the new ext4_discard_partial_page_buffers
routine is used to zero and unmap the partial page
beyond i_size if the end of the hole appears in the same
page as i_size.

The code has also been optimized to set the end of the hole
to the page after i_size if the specified hole exceeds i_size,
and the code that flushes the pages has been simplified.

Signed-off-by: Allison Henderson <achender@linux.vnet.ibm.com>
2011-09-03 11:56:52 -04:00
..
Kconfig
Makefile ext4: move ext4_ind_* functions from inode.c to indirect.c 2011-06-27 19:40:50 -04:00
acl.c switch posix_acl_equiv_mode() to umode_t * 2011-08-01 02:10:06 -04:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
balloc.c ext4: refactor duplicated block placement code 2011-06-28 10:01:31 -04:00
bitmap.c
block_validity.c ext4: move ext4_ind_* functions from inode.c to indirect.c 2011-06-27 19:40:50 -04:00
dir.c
ext4.h ext4: Add new ext4_discard_partial_page_buffers routines 2011-09-03 11:51:09 -04:00
ext4_extents.h ext4: use FIEMAP_EXTENT_LAST flag for last extent in fiemap 2011-06-06 00:06:52 -04:00
ext4_jbd2.c
ext4_jbd2.h ext4: Fix ext4_should_writeback_data() for no-journal mode 2011-08-13 11:25:18 -04:00
extents.c ext4: fix 2nd xfstests 127 punch hole failure 2011-09-03 11:56:52 -04:00
file.c fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
fsync.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-08-01 13:56:03 -10:00
hash.c
ialloc.c ext4: use the correct error exit path in ext4_init_inode_table() 2011-08-01 06:32:19 -04:00
indirect.c ext4: flush any pending end_io requests before DIO reads w/dioread_nolock 2011-08-19 19:13:32 -04:00
inode.c ext4: Add new ext4_discard_partial_page_buffers routines 2011-09-03 11:51:09 -04:00
ioctl.c ext4: prevent parallel resizers by atomic bit ops 2011-07-26 21:35:44 -04:00
mballoc.c ext4: prevent memory leaks from ext4_mb_init_backend() on error path 2011-08-01 17:41:46 -04:00
mballoc.h ext4: remove ac_repeats from ext4_allocation_context 2011-07-23 16:18:55 -04:00
migrate.c
mmp.c
move_extent.c ext4: Fix max file size and logical block counting of extent format file 2011-06-06 00:05:17 -04:00
namei.c ext4: call ext4_handle_dirty_metadata with correct inode in ext4_dx_add_entry 2011-08-31 12:02:51 -04:00
page-io.c ext4: remove i_mutex lock in ext4_evict_inode to fix lockdep complaining 2011-08-31 11:50:51 -04:00
resize.c ext4: use ext4_kvzalloc()/ext4_kvmalloc() for s_group_desc and s_group_info 2011-08-01 08:45:38 -04:00
super.c ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode 2011-08-13 12:17:13 -04:00
symlink.c
truncate.h ext4: move common truncate functions to header file 2011-06-27 19:16:04 -04:00
xattr.c
xattr.h
xattr_security.c
xattr_trusted.c
xattr_user.c