Pull ext4 updates from Ted Ts'o: "Some locking and page fault bug fixes from Jan Kara, some ext4 encryption fixes from me, and Li Xi's Project Quota commits" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: fs: clean up the flags definition in uapi/linux/fs.h ext4: add FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support ext4: add project quota support ext4: adds project ID support ext4 crypto: simplify interfaces to directory entry insert functions ext4 crypto: add missing locking for keyring_key access ext4: use pre-zeroed blocks for DAX page faults ext4: implement allocation of pre-zeroed blocks ext4: provide ext4_issue_zeroout() ext4: get rid of EXT4_GET_BLOCKS_NO_LOCK flag ext4: document lock ordering ext4: fix races of writeback with punch hole and zero range ext4: fix races between buffered IO and collapse / insert range ext4: move unlocked dio protection from ext4_alloc_file_blocks() ext4: fix races between page faults and hole punching
Showing the changes to include/uapi/linux (1 of 14 files). Show all
Unified · Split
| @@ -2,8 +2,11 @@ · 1 unmodified line | |||
| 2 | #define _UAPI_LINUX_FS_H | 2 | #define _UAPI_LINUX_FS_H |
| 3 | 3 | ||
| 4 | /* | 4 | /* |
| 5 | * This file has definitions for some important file table | 5 | * This file has definitions for some important file table structures |
| 6 | * structures etc. | 6 | * and constants and structures used by various generic file system |
| 7 | * ioctl's. Please do not make any changes in this file before | ||
| 8 | * sending patches for review to linux-fsdevel@vger.kernel.org and | ||
| 9 | * linux-api@vger.kernel.org. | ||
| 7 | */ | 10 | */ |
| 8 | 11 | ||
| 9 | #include <linux/limits.h> | 12 | #include <linux/limits.h> |
| @@ -246,6 +249,23 @@ struct fsxattr { · 236 unmodified lines | |||
| 246 | 249 | ||
| 247 | /* | 250 | /* |
| 248 | * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS) | 251 | * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS) |
| 252 | * | ||
| 253 | * Note: for historical reasons, these flags were originally used and | ||
| 254 | * defined for use by ext2/ext3, and then other file systems started | ||
| 255 | * using these flags so they wouldn't need to write their own version | ||
| 256 | * of chattr/lsattr (which was shipped as part of e2fsprogs). You | ||
| 257 | * should think twice before trying to use these flags in new | ||
| 258 | * contexts, or trying to assign these flags, since they are used both | ||
| 259 | * as the UAPI and the on-disk encoding for ext2/3/4. Also, we are | ||
| 260 | * almost out of 32-bit flags. :-) | ||
| 261 | * | ||
| 262 | * We have recently hoisted FS_IOC_FSGETXATTR / FS_IOC_FSSETXATTR from | ||
| 263 | * XFS to the generic FS level interface. This uses a structure that | ||
| 264 | * has padding and hence has more room to grow, so it may be more | ||
| 265 | * appropriate for many new use cases. | ||
| 266 | * | ||
| 267 | * Please do not change these flags or interfaces before checking with | ||
| 268 | * linux-fsdevel@vger.kernel.org and linux-api@vger.kernel.org. | ||
| 249 | */ | 269 | */ |
| 250 | #define FS_SECRM_FL 0x00000001 /* Secure deletion */ | 270 | #define FS_SECRM_FL 0x00000001 /* Secure deletion */ |
| 251 | #define FS_UNRM_FL 0x00000002 /* Undelete */ | 271 | #define FS_UNRM_FL 0x00000002 /* Undelete */ |
| @@ -259,8 +279,8 @@ struct fsxattr { · 7 unmodified lines | |||
| 259 | #define FS_DIRTY_FL 0x00000100 | 279 | #define FS_DIRTY_FL 0x00000100 |
| 260 | #define FS_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */ | 280 | #define FS_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */ |
| 261 | #define FS_NOCOMP_FL 0x00000400 /* Don't compress */ | 281 | #define FS_NOCOMP_FL 0x00000400 /* Don't compress */ |
| 262 | #define FS_ECOMPR_FL 0x00000800 /* Compression error */ | ||
| 263 | /* End compression flags --- maybe not all used */ | 282 | /* End compression flags --- maybe not all used */ |
| 283 | #define FS_ENCRYPT_FL 0x00000800 /* Encrypted file */ | ||
| 264 | #define FS_BTREE_FL 0x00001000 /* btree format dir */ | 284 | #define FS_BTREE_FL 0x00001000 /* btree format dir */ |
| 265 | #define FS_INDEX_FL 0x00001000 /* hash-indexed directory */ | 285 | #define FS_INDEX_FL 0x00001000 /* hash-indexed directory */ |
| 266 | #define FS_IMAGIC_FL 0x00002000 /* AFS directory */ | 286 | #define FS_IMAGIC_FL 0x00002000 /* AFS directory */ |
| @@ -268,9 +288,12 @@ struct fsxattr { · 1 unmodified line | |||
| 268 | #define FS_NOTAIL_FL 0x00008000 /* file tail should not be merged */ | 288 | #define FS_NOTAIL_FL 0x00008000 /* file tail should not be merged */ |
| 269 | #define FS_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */ | 289 | #define FS_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */ |
| 270 | #define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ | 290 | #define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ |
| 291 | #define FS_HUGE_FILE_FL 0x00040000 /* Reserved for ext4 */ | ||
| 271 | #define FS_EXTENT_FL 0x00080000 /* Extents */ | 292 | #define FS_EXTENT_FL 0x00080000 /* Extents */ |
| 272 | #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */ | 293 | #define FS_EA_INODE_FL 0x00200000 /* Inode used for large EA */ |
| 294 | #define FS_EOFBLOCKS_FL 0x00400000 /* Reserved for ext4 */ | ||
| 273 | #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ | 295 | #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ |
| 296 | #define FS_INLINE_DATA_FL 0x10000000 /* Reserved for ext4 */ | ||
| 274 | #define FS_PROJINHERIT_FL 0x20000000 /* Create with parents projid */ | 297 | #define FS_PROJINHERIT_FL 0x20000000 /* Create with parents projid */ |
| 275 | #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ | 298 | #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ |
| 276 | 299 | ||