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


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

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