android_kernel_google_msm/fs/ext4
Dmitry Monakhov 4319fd0000 ext4: race-condition protection for ext4_convert_unwritten_extents_endio
commit dee1f973ca upstream.

We assumed that at the time we call ext4_convert_unwritten_extents_endio()
extent in question is fully inside [map.m_lblk, map->m_len] because
it was already split during submission.  But this may not be true due to
a race between writeback vs fallocate.

If extent in question is larger than requested we will split it again.
Special precautions should being done if zeroout required because
[map.m_lblk, map->m_len] already contains valid data.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-28 10:14:12 -07: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: pass a char * to ext4_count_free() instead of a buffer_head ptr 2012-08-09 08:31:40 -07:00
bitmap.c ext4: fix overhead calculation used by ext4_statfs() 2012-08-09 08:31:41 -07:00
block_validity.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
dir.c Merge branch 'for-3.4' of git://linux-nfs.org/~bfields/linux 2012-03-29 14:53:25 -07:00
ext4.h ext4: fix overhead calculation used by ext4_statfs() 2012-08-09 08:31:41 -07:00
ext4_extents.h ext4: add no_printk argument validation, fix fallout 2012-03-19 23:11:43 -04:00
ext4_jbd2.c jbd2: add debugging information to jbd2_journal_dirty_metadata() 2011-09-04 10:18:14 -04:00
ext4_jbd2.h ext4: expand commit callback and 2012-02-20 17:53:02 -05:00
extents.c ext4: race-condition protection for ext4_convert_unwritten_extents_endio 2012-10-28 10:14:12 -07:00
file.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-11-02 10:06:20 -07:00
fsync.c ext4: fix race between sync and completed io work 2012-03-05 10:29: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: pass a char * to ext4_count_free() instead of a buffer_head ptr 2012-08-09 08:31:40 -07:00
indirect.c ext2/3/4: delete unneeded includes of module.h 2012-01-09 13:52:10 +01:00
inode.c ext4: fix fdatasync() for files with only i_size changes 2012-10-13 05:38:50 +09:00
ioctl.c ext4: fix duplicated mnt_drop_write call in EXT4_IOC_MOVE_EXT 2012-07-29 08:04:19 -07:00
Kconfig
Makefile ext4: move ext4_ind_* functions from inode.c to indirect.c 2011-06-27 19:40:50 -04:00
mballoc.c ext4: remove mb_groups before tearing down the buddy_cache 2012-06-10 00:36:16 +09:00
mballoc.h ext4: remove EXT4_MB_{BITMAP,BUDDY} macros 2012-02-20 17:54:06 -05:00
migrate.c ext4: using PTR_ERR() on the wrong variable in ext4_ext_migrate() 2012-02-20 17:53:06 -05:00
mmp.c ext4: Fix endianness bug when reading the MMP block 2012-02-27 01:09:03 -05:00
move_extent.c ext4: online defrag is not supported for journaled files 2012-10-13 05:38:49 +09:00
namei.c ext4: always set i_op in ext4_mknod() 2012-10-13 05:38:49 +09:00
page-io.c Revert "ext4: don't release page refs in ext4_end_bio()" 2012-03-29 17:00:56 -07:00
resize.c ext4: avoid duplicate writes of the backup bg descriptor blocks 2012-10-13 05:38:48 +09:00
super.c ext4: fix crash when accessing /proc/mounts concurrently 2012-10-13 05:38:49 +09:00
symlink.c
truncate.h ext4: move common truncate functions to header file 2011-06-27 19:16:04 -04:00
xattr.c ext4: add no_printk argument validation, fix fallout 2012-03-19 23:11:43 -04:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05: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