+may allocate a larger range of disk space than was specified.
+.SS Deallocating file space
+Specifying the
+.BR FALLOC_FL_PUNCH_HOLE
+flag (available since Linux 2.6.38) in
+.I mode
+deallocates space (i.e., creates a hole)
+in the byte range starting at
+.I offset
+and continuing for
+.I len
+bytes.
+Within the specified range, partial file system blocks are zeroed,
+and whole file system blocks are removed from the file.
+After a successful call,
+subsequent reads from this range will return zeroes.
+
+The
+.BR FALLOC_FL_PUNCH_HOLE
+flag must be ORed with
+.BR FALLOC_FL_KEEP_SIZE
+in
+.IR mode ;
+in other words, even when punching off the end of the file, the file size
+(as reported by
+.BR stat (2))
+does not change.
+
+Not all file systems support
+.BR FALLOC_FL_PUNCH_HOLE ;
+if a file system doesn't support the operation, an error is returned.