linux/fs/ext4
Tao Ma 22f1045743 ext4: fix trim length underflow with small trim length
In 0f0a25b, we adjust 'len' with s_first_data_block - start, but
it could underflow in case blocksize=1K, fstrim_range.len=512 and
fstrim_range.start = 0. In this case, when we run the code:
len -= first_data_blk - start; len will be underflow to -1ULL.
In the end, although we are safe that last_group check later will limit
the trim to the whole volume, but that isn't what the user really want.

So this patch fix it. It also adds the check for 'start' like ext3 so that
we can break immediately if the start is invalid.

Cc: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2011-07-10 23:52:37 -04:00
..
acl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
balloc.c ext4: refactor duplicated block placement code 2011-06-28 10:01:31 -04:00
bitmap.c ext4: Change unsigned long to unsigned int 2008-11-05 00:14:04 -05:00
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: Use ext4_error_file() to print the pathname to the corrupted inode 2011-01-10 12:10:55 -05: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: remove unneeded ext4_journal_get_undo_access 2011-05-09 10:58:45 -04:00
ext4_jbd2.h ext4: remove unneeded ext4_journal_get_undo_access 2011-05-09 10:58:45 -04:00
ext4.h ext4: fix i_blocks/quota accounting when extent insertion fails 2011-07-10 19:37:48 -04:00
extents.c ext4: free allocated and pre-allocated blocks when check_eofblocks_fl fails 2011-07-10 20:07:25 -04:00
file.c ext4: Convert ext4 to new truncate calling convention 2011-05-25 17:39:48 -04:00
fsync.c ext4: fix waiting and sending of a barrier in ext4_sync_file() 2011-05-24 12:00:54 -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 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-03-25 09:57:41 -07:00
indirect.c ext4: refactor duplicated block placement code 2011-06-28 10:01:31 -04:00
inode.c ext4: move ext4_ind_* functions from inode.c to indirect.c 2011-06-27 19:40:50 -04:00
ioctl.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-03-25 09:57:41 -07:00
Kconfig ext4: Don't ask about supporting ext2/3 in ext4 if ext4 is not configured 2009-12-21 10:54:09 -05:00
Makefile ext4: move ext4_ind_* functions from inode.c to indirect.c 2011-06-27 19:40:50 -04:00
mballoc.c ext4: fix trim length underflow with small trim length 2011-07-10 23:52:37 -04:00
mballoc.h ext4: remove alloc_semp 2011-05-09 21:52:36 -04:00
migrate.c ext4: set extents flag when migrating file to use extents 2011-05-03 09:34:42 -04:00
mmp.c ext4: add support for multiple mount protection 2011-05-24 18:31:25 -04:00
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: don't dereference null pointer when make_indexed_dir() fails 2011-05-15 00:19:41 -04:00
page-io.c ext4: remove loop around bio_alloc() 2011-06-29 21:44:45 -04:00
resize.c ext4: unify the ext4_handle_release_buffer() api 2011-03-20 22:57:02 -04:00
super.c ext4: add tracepoint for ext4_journal_start 2011-07-10 22:37:50 -04:00
symlink.c ext4: symlink must be handled via filesystem specific operation 2010-05-16 02:00:00 -04:00
truncate.h ext4: move common truncate functions to header file 2011-06-27 19:16:04 -04:00
xattr_security.c fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
xattr_trusted.c ext4: constify xattr_handler 2010-05-21 18:31:19 -04:00
xattr_user.c ext4: constify xattr_handler 2010-05-21 18:31:19 -04:00
xattr.c ext4: add flag to ext4_has_free_blocks 2011-05-25 07:41:26 -04:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00