History

Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

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

Linus Torvalds committed 10 years ago

Commit 391f2a12 parents d5ffdf8 68ce7bf14 files · +895 −276Browse files

Showing the changes to include/uapi/linux (1 of 14 files). Show all

Unified · Split

include/uapi/linux/fs.h+27−4
@@ -2,8 +2,11 @@ · 1 unmodified line
2#define _UAPI_LINUX_FS_H2#define _UAPI_LINUX_FS_H
3 3
4/*4/*
5 * This file has definitions for some important file table5 * 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 0x00000100279#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