aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/falloc.h18
-rw-r--r--include/uapi/linux/fs.h4
2 files changed, 21 insertions, 1 deletions
diff --git a/include/uapi/linux/falloc.h b/include/uapi/linux/falloc.h
index 3e445a760f14..b075f601919b 100644
--- a/include/uapi/linux/falloc.h
+++ b/include/uapi/linux/falloc.h
@@ -58,4 +58,22 @@
58 */ 58 */
59#define FALLOC_FL_INSERT_RANGE 0x20 59#define FALLOC_FL_INSERT_RANGE 0x20
60 60
61/*
62 * FALLOC_FL_UNSHARE_RANGE is used to unshare shared blocks within the
63 * file size without overwriting any existing data. The purpose of this
64 * call is to preemptively reallocate any blocks that are subject to
65 * copy-on-write.
66 *
67 * Different filesystems may implement different limitations on the
68 * granularity of the operation. Most will limit operations to filesystem
69 * block size boundaries, but this boundary may be larger or smaller
70 * depending on the filesystem and/or the configuration of the filesystem
71 * or file.
72 *
73 * This flag can only be used with allocate-mode fallocate, which is
74 * to say that it cannot be used with the punch, zero, collapse, or
75 * insert range modes.
76 */
77#define FALLOC_FL_UNSHARE_RANGE 0x40
78
61#endif /* _UAPI_FALLOC_H_ */ 79#endif /* _UAPI_FALLOC_H_ */
diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h
index 2473272169f2..acb2b6152ba0 100644
--- a/include/uapi/linux/fs.h
+++ b/include/uapi/linux/fs.h
@@ -158,7 +158,8 @@ struct fsxattr {
158 __u32 fsx_extsize; /* extsize field value (get/set)*/ 158 __u32 fsx_extsize; /* extsize field value (get/set)*/
159 __u32 fsx_nextents; /* nextents field value (get) */ 159 __u32 fsx_nextents; /* nextents field value (get) */
160 __u32 fsx_projid; /* project identifier (get/set) */ 160 __u32 fsx_projid; /* project identifier (get/set) */
161 unsigned char fsx_pad[12]; 161 __u32 fsx_cowextsize; /* CoW extsize field value (get/set)*/
162 unsigned char fsx_pad[8];
162}; 163};
163 164
164/* 165/*
@@ -179,6 +180,7 @@ struct fsxattr {
179#define FS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */ 180#define FS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */
180#define FS_XFLAG_FILESTREAM 0x00004000 /* use filestream allocator */ 181#define FS_XFLAG_FILESTREAM 0x00004000 /* use filestream allocator */
181#define FS_XFLAG_DAX 0x00008000 /* use DAX for IO */ 182#define FS_XFLAG_DAX 0x00008000 /* use DAX for IO */
183#define FS_XFLAG_COWEXTSIZE 0x00010000 /* CoW extent size allocator hint */
182#define FS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */ 184#define FS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */
183 185
184/* the read-only stuff doesn't really belong here, but any other place is 186/* the read-only stuff doesn't really belong here, but any other place is