linux/fs/ext4
Akira Fujita c40ce3c9ea ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT
If logical block offset of original file which is passed to
EXT4_IOC_MOVE_EXT is different from donor file's,
a calculation error occurs in ext4_calc_swap_extents(),
therefore wrong block is exchanged between original file and donor file.
As a result, we hit ext4_error() in check_block_validity().
To detect the logical offset difference in EXT4_IOC_MOVE_EXT,
add checks to mext_calc_swap_extents() and handle it as error,
since data exchange must be done between the same blocks in EXT4_IOC_MOVE_EXT.

Reported-by: Peng Tao <bergwolf@gmail.com>
Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2009-09-16 14:25:39 -04:00
..
acl.c ext[234]: move over to 'check_acl' permission model 2009-09-08 11:09:04 -07:00
acl.h ext[234]: move over to 'check_acl' permission model 2009-09-08 11:09:04 -07:00
balloc.c ext4: open-code ext4_mb_update_group_info 2009-08-17 23:51:29 -04:00
bitmap.c ext4: Change unsigned long to unsigned int 2008-11-05 00:14:04 -05:00
block_validity.c ext4: Add a comprehensive block validity check to ext4_get_blocks() 2009-05-17 15:38:01 -04:00
dir.c ext4: Define a new set of flags for ext4_get_blocks() 2009-05-14 00:58:52 -04:00
ext4_extents.h ext4: Show unwritten extent flag in ext4_ext_show_leaf() 2009-09-18 13:34:55 -04:00
ext4_jbd2.c ext4: Assure that metadata blocks are written during fsync in no journal mode 2009-09-12 13:41:55 -04:00
ext4_jbd2.h ext4: Fix buffer head reference leak in no-journal mode 2009-07-13 09:07:20 -04:00
ext4.h ext4: Remove journal_checksum mount option and enable it by default 2009-09-05 12:50:43 -04:00
extents.c ext4: fix extent sanity checking code with AGGRESSIVE_TEST 2009-08-28 10:40:33 -04:00
file.c ext4: Remove syncing logic from ext4_file_write 2009-09-14 17:08:16 +02:00
fsync.c ext4: Assure that metadata blocks are written during fsync in no journal mode 2009-09-12 13:41:55 -04:00
hash.c ext4: Add support for non-native signed/unsigned htree hash algorithms 2008-10-28 13:21:44 -04:00
ialloc.c ext4: fix build warning when EXT4FS_DEBUG is on 2009-07-27 21:44:40 -04:00
inode.c ext4: Make non-journal fsync work properly 2009-09-09 22:33:47 -04:00
ioctl.c ext4: Return exchanged blocks count to user space in failure 2009-09-05 22:46:29 -04:00
Kconfig ext4: Add configurable run-time mballoc debugging 2009-09-18 13:38:55 -04:00
Makefile ext4: online defrag -- Add EXT4_IOC_MOVE_EXT ioctl 2009-06-17 19:24:03 -04:00
mballoc.c ext4: Clarify the locking details in mballoc 2009-09-09 23:50:17 -04:00
mballoc.h ext4: use ext4_grpblk_t more extensively 2009-08-25 22:36:45 -04:00
migrate.c ext4: Add missing unlock_new_inode() call in extent migration code 2009-08-25 22:36:05 -04:00
move_extent.c ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT 2009-09-16 14:25:39 -04:00
namei.c ext4: Always set dx_node's fake_dirent explicitly. 2009-09-10 23:16:07 -04:00
resize.c ext4: Clarify the locking details in mballoc 2009-09-09 23:50:17 -04:00
super.c ext4: Fix include/trace/events/ext4.h to work with Systemtap 2009-09-14 22:59:50 -04:00
symlink.c ext4: Rename ext4dev to ext4 2008-10-10 20:02:48 -04:00
xattr_security.c ext4: move headers out of include/linux 2008-04-29 18:13:32 -04:00
xattr_trusted.c ext4: remove double definitions of xattr macros 2008-07-11 19:27:31 -04:00
xattr_user.c ext4: remove double definitions of xattr macros 2008-07-11 19:27:31 -04:00
xattr.c ext4: Use lowercase names of quota functions 2009-03-26 02:18:36 +01:00
xattr.h ext4: Rename ext4dev to ext4 2008-10-10 20:02:48 -04:00