~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/falloc.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 #ifndef _UAPI_FALLOC_H_
  3 #define _UAPI_FALLOC_H_
  4 
  5 #define FALLOC_FL_ALLOCATE_RANGE 0x00 /* allocate range */
  6 #define FALLOC_FL_KEEP_SIZE     0x01 /* default is extend size */
  7 #define FALLOC_FL_PUNCH_HOLE    0x02 /* de-allocates range */
  8 #define FALLOC_FL_NO_HIDE_STALE 0x04 /* reserved codepoint */
  9 
 10 /*
 11  * FALLOC_FL_COLLAPSE_RANGE is used to remove a range of a file
 12  * without leaving a hole in the file. The contents of the file beyond
 13  * the range being removed is appended to the start offset of the range
 14  * being removed (i.e. the hole that was punched is "collapsed"),
 15  * resulting in a file layout that looks like the range that was
 16  * removed never existed. As such collapsing a range of a file changes
 17  * the size of the file, reducing it by the same length of the range
 18  * that has been removed by the operation.
 19  *
 20  * Different filesystems may implement different limitations on the
 21  * granularity of the operation. Most will limit operations to
 22  * filesystem block size boundaries, but this boundary may be larger or
 23  * smaller depending on the filesystem and/or the configuration of the
 24  * filesystem or file.
 25  *
 26  * Attempting to collapse a range that crosses the end of the file is
 27  * considered an illegal operation - just use ftruncate(2) if you need
 28  * to collapse a range that crosses EOF.
 29  */
 30 #define FALLOC_FL_COLLAPSE_RANGE        0x08
 31 
 32 /*
 33  * FALLOC_FL_ZERO_RANGE is used to convert a range of file to zeros preferably
 34  * without issuing data IO. Blocks should be preallocated for the regions that
 35  * span holes in the file, and the entire range is preferable converted to
 36  * unwritten extents - even though file system may choose to zero out the
 37  * extent or do whatever which will result in reading zeros from the range
 38  * while the range remains allocated for the file.
 39  *
 40  * This can be also used to preallocate blocks past EOF in the same way as
 41  * with fallocate. Flag FALLOC_FL_KEEP_SIZE should cause the inode
 42  * size to remain the same.
 43  */
 44 #define FALLOC_FL_ZERO_RANGE            0x10
 45 
 46 /*
 47  * FALLOC_FL_INSERT_RANGE is use to insert space within the file size without
 48  * overwriting any existing data. The contents of the file beyond offset are
 49  * shifted towards right by len bytes to create a hole.  As such, this
 50  * operation will increase the size of the file by len bytes.
 51  *
 52  * Different filesystems may implement different limitations on the granularity
 53  * of the operation. Most will limit operations to filesystem block size
 54  * boundaries, but this boundary may be larger or smaller depending on
 55  * the filesystem and/or the configuration of the filesystem or file.
 56  *
 57  * Attempting to insert space using this flag at OR beyond the end of
 58  * the file is considered an illegal operation - just use ftruncate(2) or
 59  * fallocate(2) with mode 0 for such type of operations.
 60  */
 61 #define FALLOC_FL_INSERT_RANGE          0x20
 62 
 63 /*
 64  * FALLOC_FL_UNSHARE_RANGE is used to unshare shared blocks within the
 65  * file size without overwriting any existing data. The purpose of this
 66  * call is to preemptively reallocate any blocks that are subject to
 67  * copy-on-write.
 68  *
 69  * Different filesystems may implement different limitations on the
 70  * granularity of the operation. Most will limit operations to filesystem
 71  * block size boundaries, but this boundary may be larger or smaller
 72  * depending on the filesystem and/or the configuration of the filesystem
 73  * or file.
 74  *
 75  * This flag can only be used with allocate-mode fallocate, which is
 76  * to say that it cannot be used with the punch, zero, collapse, or
 77  * insert range modes.
 78  */
 79 #define FALLOC_FL_UNSHARE_RANGE         0x40
 80 
 81 #endif /* _UAPI_FALLOC_H_ */
 82 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php