~ [ 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 ] ~

Diff markup

Differences between /include/uapi/linux/falloc.h (Version linux-6.12-rc7) and /include/uapi/linux/falloc.h (Version linux-5.14.21)


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

~ [ 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