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 /* << 11 * FALLOC_FL_COLLAPSE_RANGE is used to remove << 12 * without leaving a hole in the file. The con << 13 * the range being removed is appended to the << 14 * being removed (i.e. the hole that was punch << 15 * resulting in a file layout that looks like << 16 * removed never existed. As such collapsing a << 17 * the size of the file, reducing it by the sa << 18 * that has been removed by the operation. << 19 * << 20 * Different filesystems may implement differe << 21 * granularity of the operation. Most will lim << 22 * filesystem block size boundaries, but this << 23 * smaller depending on the filesystem and/or << 24 * filesystem or file. << 25 * << 26 * Attempting to collapse a range that crosses << 27 * considered an illegal operation - just use << 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 r << 34 * without issuing data IO. Blocks should be p << 35 * span holes in the file, and the entire rang << 36 * unwritten extents - even though file system << 37 * extent or do whatever which will result in << 38 * while the range remains allocated for the f << 39 * << 40 * This can be also used to preallocate blocks << 41 * with fallocate. Flag FALLOC_FL_KEEP_SIZE sh << 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 spa << 48 * overwriting any existing data. The contents << 49 * shifted towards right by len bytes to creat << 50 * operation will increase the size of the fil << 51 * << 52 * Different filesystems may implement differe << 53 * of the operation. Most will limit operation << 54 * boundaries, but this boundary may be larger << 55 * the filesystem and/or the configuration of << 56 * << 57 * Attempting to insert space using this flag << 58 * the file is considered an illegal operation << 59 * fallocate(2) with mode 0 for such type of o << 60 */ << 61 #define FALLOC_FL_INSERT_RANGE 0x20 << 62 << 63 /* << 64 * FALLOC_FL_UNSHARE_RANGE is used to unshare << 65 * file size without overwriting any existing << 66 * call is to preemptively reallocate any bloc << 67 * copy-on-write. << 68 * << 69 * Different filesystems may implement differe << 70 * granularity of the operation. Most will lim << 71 * block size boundaries, but this boundary ma << 72 * depending on the filesystem and/or the conf << 73 * or file. << 74 * << 75 * This flag can only be used with allocate-mo << 76 * to say that it cannot be used with the punc << 77 * insert range modes. << 78 */ << 79 #define FALLOC_FL_UNSHARE_RANGE 0x40 << 80 8 81 #endif /* _UAPI_FALLOC_H_ */ 9 #endif /* _UAPI_FALLOC_H_ */ 82 10
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.