Merge tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 6 Jan 2019 20:21:11 +0000 (12:21 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 6 Jan 2019 20:21:11 +0000 (12:21 -0800)
Pull fscrypt updates from Ted Ts'o:
 "Add Adiantum support for fscrypt"

* tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
  fscrypt: add Adiantum support

1  2 
include/uapi/linux/fs.h

diff --combined include/uapi/linux/fs.h
index 53a22e8e040803891afcb4d12fca60661bfe7a3e,086e7ee550dff2cf31e9538f4c9101b89605c306..121e82ce296b5a4d9e85757e94e3d9521897cb56
  #include <linux/ioctl.h>
  #include <linux/types.h>
  
 +/* Use of MS_* flags within the kernel is restricted to core mount(2) code. */
 +#if !defined(__KERNEL__)
 +#include <linux/mount.h>
 +#endif
 +
  /*
   * It's silly to have NR_OPEN bigger than NR_FILE, but you can change
   * the file limit at runtime and only root can increase the per-process
@@@ -106,6 -101,57 +106,6 @@@ struct inodes_stat_t 
  
  #define NR_FILE  8192 /* this can well be larger on a larger system */
  
 -
 -/*
 - * These are the fs-independent mount-flags: up to 32 flags are supported
 - */
 -#define MS_RDONLY      1      /* Mount read-only */
 -#define MS_NOSUID      2      /* Ignore suid and sgid bits */
 -#define MS_NODEV       4      /* Disallow access to device special files */
 -#define MS_NOEXEC      8      /* Disallow program execution */
 -#define MS_SYNCHRONOUS        16      /* Writes are synced at once */
 -#define MS_REMOUNT    32      /* Alter flags of a mounted FS */
 -#define MS_MANDLOCK   64      /* Allow mandatory locks on an FS */
 -#define MS_DIRSYNC    128     /* Directory modifications are synchronous */
 -#define MS_NOATIME    1024    /* Do not update access times. */
 -#define MS_NODIRATIME 2048    /* Do not update directory access times */
 -#define MS_BIND               4096
 -#define MS_MOVE               8192
 -#define MS_REC                16384
 -#define MS_VERBOSE    32768   /* War is peace. Verbosity is silence.
 -                                 MS_VERBOSE is deprecated. */
 -#define MS_SILENT     32768
 -#define MS_POSIXACL   (1<<16) /* VFS does not apply the umask */
 -#define MS_UNBINDABLE (1<<17) /* change to unbindable */
 -#define MS_PRIVATE    (1<<18) /* change to private */
 -#define MS_SLAVE      (1<<19) /* change to slave */
 -#define MS_SHARED     (1<<20) /* change to shared */
 -#define MS_RELATIME   (1<<21) /* Update atime relative to mtime/ctime. */
 -#define MS_KERNMOUNT  (1<<22) /* this is a kern_mount call */
 -#define MS_I_VERSION  (1<<23) /* Update inode I_version field */
 -#define MS_STRICTATIME        (1<<24) /* Always perform atime updates */
 -#define MS_LAZYTIME   (1<<25) /* Update the on-disk [acm]times lazily */
 -
 -/* These sb flags are internal to the kernel */
 -#define MS_SUBMOUNT     (1<<26)
 -#define MS_NOREMOTELOCK       (1<<27)
 -#define MS_NOSEC      (1<<28)
 -#define MS_BORN               (1<<29)
 -#define MS_ACTIVE     (1<<30)
 -#define MS_NOUSER     (1<<31)
 -
 -/*
 - * Superblock flags that can be altered by MS_REMOUNT
 - */
 -#define MS_RMT_MASK   (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|\
 -                       MS_LAZYTIME)
 -
 -/*
 - * Old magic mount flag and mask
 - */
 -#define MS_MGC_VAL 0xC0ED0000
 -#define MS_MGC_MSK 0xffff0000
 -
  /*
   * Structure for FS_IOC_FSGETXATTR[A] and FS_IOC_FSSETXATTR.
   */
@@@ -223,7 -269,8 +223,8 @@@ struct fsxattr 
  #define FS_POLICY_FLAGS_PAD_16                0x02
  #define FS_POLICY_FLAGS_PAD_32                0x03
  #define FS_POLICY_FLAGS_PAD_MASK      0x03
- #define FS_POLICY_FLAGS_VALID         0x03
+ #define FS_POLICY_FLAG_DIRECT_KEY     0x04    /* use master key directly */
+ #define FS_POLICY_FLAGS_VALID         0x07
  
  /* Encryption algorithms */
  #define FS_ENCRYPTION_MODE_INVALID            0
  #define FS_ENCRYPTION_MODE_AES_128_CTS                6
  #define FS_ENCRYPTION_MODE_SPECK128_256_XTS   7 /* Removed, do not use. */
  #define FS_ENCRYPTION_MODE_SPECK128_256_CTS   8 /* Removed, do not use. */
+ #define FS_ENCRYPTION_MODE_ADIANTUM           9
  
  struct fscrypt_policy {
        __u8 version;