linux/fs/ext4
Jan Kara a93cd4cf86 ext4: Fix hole punching for files with indirect blocks
Hole punching code for files with indirect blocks wrongly computed
number of blocks which need to be cleared when traversing the indirect
block tree. That could result in punching more blocks than actually
requested and thus effectively cause a data loss. For example:

fallocate -n -p 10240000 4096

will punch the range 10240000 - 12632064 instead of the range 1024000 -
10244096. Fix the calculation.

CC: stable@vger.kernel.org
Fixes: 8bad6fc813
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2014-06-26 12:30:54 -04:00
..
acl.c ext2/3/4: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
acl.h ext2/3/4: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
balloc.c ext4: decrement free clusters/inodes counters when block group declared bad 2014-06-26 10:11:53 -04:00
bitmap.c ext4: Checksum the block bitmap properly with bigalloc enabled 2012-10-22 00:34:32 -04:00
block_validity.c fs/ext4: use rbtree postorder iteration helper instead of opencoding 2014-01-23 16:37:03 -08:00
dir.c ext4: remove unused local variable "stored" from ext4_readdir(...) 2014-05-27 12:48:55 -04:00
ext4_extents.h ext4: rename uninitialized extents to unwritten 2014-04-20 23:45:47 -04:00
ext4_jbd2.c ext4: make local functions static 2014-05-12 10:50:23 -04:00
ext4_jbd2.h ext4: make local functions static 2014-05-12 10:50:23 -04:00
ext4.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-06-12 10:30:18 -07:00
extents_status.c ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged() 2014-05-12 22:21:43 -04:00
extents_status.h ext4: add ext4_es_store_pblock_status() 2014-02-19 20:15:15 -05:00
extents.c ext4: fix ZERO_RANGE test failure in data journalling 2014-05-27 12:48:55 -04:00
file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-06-12 10:30:18 -07: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: decrement free clusters/inodes counters when block group declared bad 2014-06-26 10:11:53 -04:00
indirect.c ext4: Fix hole punching for files with indirect blocks 2014-06-26 12:30:54 -04:00
inline.c ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access 2014-05-12 22:06:43 -04:00
inode.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-06-12 10:30:18 -07:00
ioctl.c ext4: clean up error handling in swap_inode_boot_loader() 2014-02-17 20:44:36 -05: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: decrement free clusters/inodes counters when block group declared bad 2014-06-26 10:11:53 -04:00
mballoc.h ext4: remove unused ac_ex_scanned 2014-02-20 13:32:10 -05:00
migrate.c ext4: remove unnecessary double parentheses 2014-05-12 12:55:07 -04:00
mmp.c ext4: make local functions static 2014-05-12 10:50:23 -04:00
move_extent.c ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access 2014-05-12 22:06:43 -04:00
namei.c ext4: reduce contention on s_orphan_lock 2014-05-26 11:56:53 -04:00
page-io.c Clean ups and miscellaneous bug fixes, in particular for the new 2014-06-08 13:03:35 -07:00
resize.c Clean ups and miscellaneous bug fixes, in particular for the new 2014-06-08 13:03:35 -07:00
super.c ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access 2014-05-12 22:06:43 -04:00
symlink.c ext4: Remove CONFIG_EXT4_FS_XATTR 2012-12-10 16:30:43 -05:00
truncate.h
xattr_security.c Merge branch 'for_linus' into for_linus_merged 2012-01-10 11:54:07 -05:00
xattr_trusted.c
xattr_user.c
xattr.c ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access 2014-05-12 22:06:43 -04:00
xattr.h ext4: each filesystem creates and uses its own mb_cache 2014-03-18 19:24:49 -04:00