diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/falloc.h | 18 | ||||
| -rw-r--r-- | include/uapi/linux/fs.h | 4 |
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 |
