Files
mirror_zfs/include/sys
Etienne Dechamps bbdc6ae495 Add interface for file hole punching.
This adds an interface to "punch holes" (deallocate space) in VFS
files. The interface is identical to the Solaris VOP_SPACE interface.
This interface is necessary for TRIM support on file vdevs.

This is implemented using Linux fallocate(FALLOC_FL_PUNCH_HOLE), which
was introduced in 2.6.38. For a brief time before 2.6.38 this was done
using the truncate_range inode operation, which was quickly deprecated.
This patch only supports FALLOC_FL_PUNCH_HOLE.

This adds support for the truncate_range() inode operation to
VOP_SPACE() for file hole punching. This API is deprecated and removed
in 3.5, so it's only useful for old kernels.

On tmpfs, the truncate_range() inode operation translates to
shmem_truncate_range(). Unfortunately, this function expects the end
offset to be inclusive and aligned to the end of a page. If it is not,
the kernel will stop with a BUG_ON().

This patch fixes the issue by adapting to the constraints set forth by
shmem_truncate_range().

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #168
2012-10-04 16:22:07 -07:00
..
2012-08-27 11:46:23 -07:00
2012-08-27 11:46:23 -07:00
2012-08-27 11:46:23 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-04-06 12:06:19 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-06-11 15:57:25 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2011-03-22 12:18:44 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-09-02 14:22:01 -07:00
2010-05-17 15:18:00 -07:00
2011-04-06 20:06:03 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2011-01-27 16:06:09 -08:00
2011-02-23 14:32:15 -08:00
2011-01-27 16:06:09 -08:00
2011-01-27 16:06:09 -08:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-05-03 09:56:15 -07:00
2011-01-27 16:06:09 -08:00
2012-09-07 14:27:03 -07:00
2010-05-17 15:18:00 -07:00
2012-02-02 11:28:00 -08:00
2010-08-27 14:23:48 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-08-27 12:00:55 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2011-04-29 13:58:45 -07:00
2010-05-17 15:18:00 -07:00
2011-01-27 16:06:09 -08:00
2010-06-11 15:57:25 -07:00
2010-05-17 15:18:00 -07:00
2010-06-11 15:57:25 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2011-01-27 16:06:09 -08:00
2010-07-20 13:29:35 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-05-18 13:57:44 -07:00
2010-05-17 15:18:00 -07:00
2010-06-11 15:57:25 -07:00
2010-05-17 15:18:00 -07:00
2012-07-02 09:33:09 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2012-09-12 11:41:42 -07:00
2012-07-02 09:33:09 -07:00
2011-11-11 09:18:28 -08:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-06-11 15:57:25 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2010-05-17 15:18:00 -07:00
2011-04-29 12:10:54 -07:00
2010-05-17 15:18:00 -07:00
2012-10-04 16:22:07 -07:00
2011-11-11 09:18:28 -08:00
2010-05-17 15:18:00 -07:00