linux/fs/ext4
Zheng Liu 8bad6fc813 ext4: add punching hole support for non-extent-mapped files
This patch add supports for indirect file support punching hole.  It
is almost the same as ext4_ext_punch_hole.  First, we invalidate all
pages between this hole, and then we try to deallocate all blocks of
this hole.

A recursive function is used to handle deallocation of blocks.  In
this function, it iterates over the entries in inode's i_blocks or
indirect blocks, and try to free the block for each one of them.

After applying this patch, xfstest #255 will not pass w/o extent because
indirect-based file doesn't support unwritten extents.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2013-01-28 09:21:37 -05:00
..
acl.c ext4: fix memory leak in ext4_xattr_set_acl()'s error path 2012-11-08 15:11:11 -05:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
balloc.c ext4: check bh in ext4_read_block_bitmap() 2013-01-12 16:33:25 -05: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 lseek: the "whence" argument is called "whence" 2012-12-17 17:15:12 -08:00
ext4_extents.h ext4: rationalize ext4_extents.h inclusion 2012-11-28 13:03:30 -05:00
ext4_jbd2.c ext4: fix metadata checksum calculation for the superblock 2012-10-10 01:06:58 -04:00
ext4_jbd2.h ext4: remove ext4_handle_release_buffer() 2012-11-08 11:22:46 -05:00
ext4.h ext4: add punching hole support for non-extent-mapped files 2013-01-28 09:21:37 -05:00
extents_status.c ext4: add some tracepoints in extent status tree 2012-11-08 21:57:33 -05:00
extents_status.h ext4: add operations on extent status tree 2012-11-08 21:57:20 -05:00
extents.c ext4: add punching hole support for non-extent-mapped files 2013-01-28 09:21:37 -05:00
file.c Various bug fixes for ext4. Perhaps the most serious bug fixed is one 2013-01-02 09:57:34 -08:00
fsync.c ext4: fix an incorrect comment about i_mutex 2012-12-25 13:31:52 -05:00
hash.c ext4: return 32/64-bit dir name hash according to usage type 2012-03-18 22:44:40 -04:00
ialloc.c ext4: enable ext4 inline support 2012-12-10 14:06:03 -05:00
indirect.c ext4: add punching hole support for non-extent-mapped files 2013-01-28 09:21:37 -05:00
inline.c ext4: return ENOMEM if sb_getblk() fails 2013-01-12 16:19:36 -05:00
inode.c ext4: add punching hole support for non-extent-mapped files 2013-01-28 09:21:37 -05:00
ioctl.c ext4: trigger the lazy inode table initialization after resize 2013-01-13 08:41:45 -05:00
Kconfig ext4: fix configuration dependencies for ext4 ACLs and security labels 2013-01-06 23:38:44 -05:00
Makefile ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
mballoc.c ext4: warn when discard request fails other than EOPNOTSUPP 2012-11-08 14:04:52 -05:00
mballoc.h ext4: remove unused macro MB_DEFAULT_MAX_GROUPS_TO_SCAN 2012-08-17 10:00:17 -04:00
migrate.c ext4: rationalize ext4_extents.h inclusion 2012-11-28 13:03:30 -05:00
mmp.c ext4: use unlikely to improve the efficiency of the kernel 2013-01-12 16:28:47 -05:00
move_extent.c ext4: rationalize ext4_extents.h inclusion 2012-11-28 13:03:30 -05:00
namei.c ext4: remove duplicate call to ext4_bread() in ext4_init_new_dir() 2013-01-06 23:40:25 -05:00
page-io.c ext4: rationalize ext4_extents.h inclusion 2012-11-28 13:03:30 -05:00
resize.c ext4: trigger the lazy inode table initialization after resize 2013-01-13 08:41:45 -05:00
super.c ext4: fix memory leak when quota options are specified multiple times 2013-01-24 23:24:58 -05: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: use unlikely to improve the efficiency of the kernel 2013-01-12 16:28:47 -05:00
xattr.h ext4: zero out inline data using memset() instead of empty_zero_page 2012-12-11 03:31:49 -05:00