linux/fs/ext3
Lukas Czerner 9c52749232 ext3: Add FITRIM handling
The ioctl takes fstrim_range structure (defined in include/linux/fs.h) as an
argument specifying a range of filesystem to trim and the minimum size of an
continguous extent to trim. After the FITRIM is done, the number of bytes
passed from the filesystem down the block stack to the device for potential
discard is stored in fstrim_range.len.  This number is a maximum discard amount
from the storage device's perspective, because FITRIM called repeatedly will
keep sending the same sectors for discard.  fstrim_range.len will report the
same potential discard bytes each time, but only sectors which had been written
to between the discards would actually be discarded by the storage device.
Further, the kernel block layer reserves the right to adjust the discard ranges
to fit raid stripe geometry, non-trim capable devices in a LVM setup, etc.
These reductions would not be reflected in fstrim_range.len.

Thus fstrim_range.len can give the user better insight on how much storage
space has potentially been released for wear-leveling, but it needs to be one
of only one criteria the userspace tools take into account when trying to
optimize calls to FITRIM.

Thanks to Greg Freemyer <greg.freemyer@gmail.com> for better commit message.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2011-01-10 19:04:05 +01:00
..
acl.c ext3: update ctime when changing the file's permission by setfacl 2010-06-25 01:20:37 +02:00
acl.h ext[234]: move over to 'check_acl' permission model 2009-09-08 11:09:04 -07:00
balloc.c ext3: Add batched discard support for ext3 2011-01-10 19:03:58 +01:00
bitmap.c fs: mark nibblemap const 2007-10-17 08:42:47 -07:00
dir.c ext3 uses rb_node = NULL; to zero rb_root. 2010-05-27 17:39:36 +02:00
ext3_jbd.c ext3: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:45 -07:00
file.c dquot: cleanup dquot initialize routine 2010-03-05 00:20:30 +01:00
fsync.c block: remove BLKDEV_IFL_WAIT 2010-09-16 20:52:58 +02:00
hash.c ext3: Add support for non-native signed/unsigned htree hash algorithms 2008-10-28 13:21:55 -04:00
ialloc.c ext3: Fix lost extented attributes for inode with ino == 11 2010-10-05 12:20:23 +02:00
inode.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2010-10-27 20:13:18 -07:00
ioctl.c ext3: Add FITRIM handling 2011-01-10 19:04:05 +01:00
Kconfig ext3: default to ordered mode 2010-07-23 12:50:55 +02:00
Makefile
namei.c ext3: Add journal error check into ext3_rename() 2011-01-06 11:52:16 +01:00
namei.h
resize.c ext3: Fix debug messages in ext3_group_extend() 2010-10-28 01:30:05 +02:00
super.c ext3: Return error code from generic_check_addressable 2011-01-06 11:52:15 +01:00
symlink.c ext3: symlink must be handled via filesystem specific operation 2010-04-12 21:11:39 +02:00
xattr_security.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00
xattr_trusted.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00
xattr_user.c ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00
xattr.c mbcache: Remove unused features 2010-08-09 16:48:45 -04:00
xattr.h ext3: constify xattr handlers 2010-05-21 18:31:19 -04:00