Andreas Rohner
2014-02-21 14:56:49 UTC
Hi,
This patch adds support for the FITRIM ioctl, which allows user space
tools like fstrim to issue TRIM/DISCARD requests to the underlying
device. It takes a fstrim_range structure as a parameter and for every
clean segment in the specified range the function blkdev_issue_discard
is called. The range is truncated to file system block boundaries.
I tested it with a 32 bit and 64 bit kernel. On the 32 bit system
CONFIG_LBDAF was disabled so that sector_t was 32 bit.
Best regards,
Andreas Rohner
---
v2->v3 (based on review by Ryusuke Konishi)
* Fix integer overflow
* Round range to block boundary instead of sector boundary
* Move range check to nilfs_sufile_trim_fs()
v1->v2 (based on review by Ryusuke Konishi)
* Remove upper limit of minlen
* Add check for minlen
* Round range to sector boundary instead of segment boundary
* Fix minor bug
* Use kmap_atomic instead of kmap
* Move input checks to ioctl.c
* Use nilfs_sufile_segment_usages_in_block()
--
Andreas Rohner (2):
nilfs2: add nilfs_sufile_trim_fs to trim clean segs
nilfs2: add FITRIM ioctl support for nilfs2
fs/nilfs2/ioctl.c | 46 +++++++++++++++++
fs/nilfs2/sufile.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/nilfs2/sufile.h | 1 +
3 files changed, 194 insertions(+)
This patch adds support for the FITRIM ioctl, which allows user space
tools like fstrim to issue TRIM/DISCARD requests to the underlying
device. It takes a fstrim_range structure as a parameter and for every
clean segment in the specified range the function blkdev_issue_discard
is called. The range is truncated to file system block boundaries.
I tested it with a 32 bit and 64 bit kernel. On the 32 bit system
CONFIG_LBDAF was disabled so that sector_t was 32 bit.
Best regards,
Andreas Rohner
---
v2->v3 (based on review by Ryusuke Konishi)
* Fix integer overflow
* Round range to block boundary instead of sector boundary
* Move range check to nilfs_sufile_trim_fs()
v1->v2 (based on review by Ryusuke Konishi)
* Remove upper limit of minlen
* Add check for minlen
* Round range to sector boundary instead of segment boundary
* Fix minor bug
* Use kmap_atomic instead of kmap
* Move input checks to ioctl.c
* Use nilfs_sufile_segment_usages_in_block()
--
Andreas Rohner (2):
nilfs2: add nilfs_sufile_trim_fs to trim clean segs
nilfs2: add FITRIM ioctl support for nilfs2
fs/nilfs2/ioctl.c | 46 +++++++++++++++++
fs/nilfs2/sufile.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/nilfs2/sufile.h | 1 +
3 files changed, 194 insertions(+)
--
1.9.0
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
1.9.0
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html