Pull f2fs updates from Jaegeuk Kim: "New Features: - uplift filesystem encryption into fs/crypto/ - give sysfs entries to control memroy consumption Enhancements: - aio performance by preallocating blocks in ->write_iter - use writepages lock for only WB_SYNC_ALL - avoid redundant inline_data conversion - enhance forground GC - use wait_for_stable_page as possible - speed up SEEK_DATA and fiiemap Bug Fixes: - corner case in terms of -ENOSPC for inline_data - hung task caused by long latency in shrinker - corruption between atomic write and f2fs_trace_pid - avoid garbage lengths in dentries - revoke atomicly written pages if an error occurs In addition, there are various minor bug fixes and clean-ups" * tag 'for-f2fs-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (81 commits) f2fs: submit node page write bios when really required f2fs: add missing argument to f2fs_setxattr stub f2fs: fix to avoid unneeded unlock_new_inode f2fs: clean up opened code with f2fs_update_dentry f2fs: declare static functions f2fs: use cryptoapi crc32 functions f2fs: modify the readahead method in ra_node_page() f2fs crypto: sync ext4_lookup and ext4_file_open fs crypto: move per-file encryption from f2fs tree to fs/crypto f2fs: mutex can't be used by down_write_nest_lock() f2fs: recovery missing dot dentries in root directory f2fs: fix to avoid deadlock when merging inline data f2fs: introduce f2fs_flush_merged_bios for cleanup f2fs: introduce f2fs_update_data_blkaddr for cleanup f2fs crypto: fix incorrect positioning for GCing encrypted data page f2fs: fix incorrect upper bound when iterating inode mapping tree f2fs: avoid hungtask problem caused by losing wake_up f2fs: trace old block address for CoWed page f2fs: try to flush inode after merging inline data f2fs: show more info about superblock recovery ...
Showing the changes to include/uapi (1 of 40 files). Show all
Unified · Split
| @@ -246,6 +246,24 @@ struct fsxattr { · 245 unmodified lines | ||
| 246 | 246 | #define FS_IOC_FSGETXATTR _IOR ('X', 31, struct fsxattr) |
| 247 | 247 | #define FS_IOC_FSSETXATTR _IOW ('X', 32, struct fsxattr) |
| 248 | 248 | |
| 249 | +/* | |
| 250 | + * File system encryption support | |
| 251 | + */ | |
| 252 | +/* Policy provided via an ioctl on the topmost directory */ | |
| 253 | +#define FS_KEY_DESCRIPTOR_SIZE 8 | |
| 254 | + | |
| 255 | +struct fscrypt_policy { | |
| 256 | + __u8 version; | |
| 257 | + __u8 contents_encryption_mode; | |
| 258 | + __u8 filenames_encryption_mode; | |
| 259 | + __u8 flags; | |
| 260 | + __u8 master_key_descriptor[FS_KEY_DESCRIPTOR_SIZE]; | |
| 261 | +} __packed; | |
| 262 | + | |
| 263 | +#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy) | |
| 264 | +#define FS_IOC_GET_ENCRYPTION_PWSALT _IOW('f', 20, __u8[16]) | |
| 265 | +#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy) | |
| 266 | + | |
| 249 | 267 | /* |
| 250 | 268 | * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS) |
| 251 | 269 | * |