linux-stable/Documentation/filesystems
Satya Tangirala 5fee36095c fscrypt: add inline encryption support
Add support for inline encryption to fs/crypto/.  With "inline
encryption", the block layer handles the decryption/encryption as part
of the bio, instead of the filesystem doing the crypto itself via
Linux's crypto API. This model is needed in order to take advantage of
the inline encryption hardware present on most modern mobile SoCs.

To use inline encryption, the filesystem needs to be mounted with
'-o inlinecrypt'. Blk-crypto will then be used instead of the traditional
filesystem-layer crypto whenever possible to encrypt the contents
of any encrypted files in that filesystem. Fscrypt still provides the key
and IV to use, and the actual ciphertext on-disk is still the same;
therefore it's testable using the existing fscrypt ciphertext verification
tests.

Note that since blk-crypto has a fallback to Linux's crypto API, and
also supports all the encryption modes currently supported by fscrypt,
this feature is usable and testable even without actual inline
encryption hardware.

Per-filesystem changes will be needed to set encryption contexts when
submitting bios and to implement the 'inlinecrypt' mount option.  This
patch just adds the common code.

Signed-off-by: Satya Tangirala <satyat@google.com>
Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Link: https://lore.kernel.org/r/20200702015607.1215430-3-satyat@google.com
Co-developed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-07-08 10:29:30 -07:00
..
caching docs: filesystems: caching/backend-api.txt: convert it to ReST 2020-05-05 09:22:21 -06:00
cifs docs: filesystems: convert cifs/cifsroot.txt to ReST 2020-05-05 09:22:21 -06:00
ext4 fs/ext4: Disallow verity if inode is DAX 2020-05-28 22:09:47 -04:00
nfs Documentation: nfs: knfsd-stats: convert to ReST 2020-02-13 11:21:35 -07:00
spufs docs: filesystems: convert spufs/spu_run.txt to ReST 2020-05-05 09:22:24 -06:00
9p.rst Update the documentation referencing Plan 9 from User Space. 2020-04-28 12:32:31 -06:00
adfs.rst docs: filesystems: convert adfs.txt to ReST 2020-03-02 13:58:44 -07:00
affs.rst docs: filesystems: convert affs.txt to ReST 2020-03-02 14:01:06 -07:00
afs.rst docs: networking: convert rxrpc.txt to ReST 2020-04-30 12:56:38 -07:00
api-summary.rst docs: no structured comments in fs/file_table.c 2019-05-24 15:03:39 -06:00
autofs-mount-control.rst docs: filesystems: convert autofs-mount-control.txt to ReST 2020-03-02 14:01:25 -07:00
autofs.rst docs: filesystems: Add mount map description in Content 2019-11-18 12:19:59 -07:00
automount-support.rst docs: filesystems: convert automount-support.txt to ReST 2020-05-05 09:22:21 -06:00
befs.rst docs: filesystems: convert befs.txt to ReST 2020-03-02 14:01:25 -07:00
bfs.rst docs: filesystems: convert bfs.txt to ReST 2020-03-02 14:01:26 -07:00
btrfs.rst docs: filesystems: convert btrfs.txt to ReST 2020-03-02 14:01:28 -07:00
ceph.rst The main items are: 2020-04-08 21:44:05 -07:00
coda.rst docs: filesystems: convert coda.txt to ReST 2020-05-05 09:22:21 -06:00
configfs.rst docs: filesystems: convert configfs.txt to ReST 2020-05-05 09:23:25 -06:00
cramfs.rst docs: filesystems: convert cramfs.txt to ReST 2020-03-02 14:02:07 -07:00
dax.txt This is the second round of ext4 commits for 5.8 merge window. It 2020-06-15 09:32:10 -07:00
debugfs.rst A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
devpts.rst docs: filesystems: convert devpts.txt to ReST 2020-05-05 09:22:21 -06:00
directory-locking.rst docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
dlmfs.rst docs: filesystems: convert dlmfs.txt to ReST 2020-03-02 14:02:24 -07:00
dnotify.rst docs: filesystems: convert dnotify.txt to ReST 2020-05-05 09:22:22 -06:00
ecryptfs.rst docs: prevent warnings due to autosectionlabel 2020-03-20 17:01:29 -06:00
efivarfs.rst docs: filesystems: add info about efivars content 2020-05-25 18:59:59 -06:00
erofs.rst docs: filesystems: convert erofs.txt to ReST 2020-03-02 14:02:57 -07:00
ext2.rst docs: filesystems: convert ext2.txt to ReST 2020-03-02 14:02:59 -07:00
ext3.rst docs: filesystems: convert ext3.txt to ReST 2020-03-02 14:03:16 -07:00
f2fs.rst f2fs-for-5.8-rc1 2020-06-09 11:28:59 -07:00
fiemap.rst A lot of bug fixes and cleanups for ext4, including: 2020-06-05 16:19:28 -07:00
files.rst docs: filesystems: convert files.txt to ReST 2020-05-05 09:22:22 -06:00
fscrypt.rst fscrypt: add inline encryption support 2020-07-08 10:29:30 -07:00
fsverity.rst docs: fs-verity: mention statx() support 2019-11-13 12:15:34 -08:00
fuse-io.rst docs: filesystems: convert fuse-io.txt to ReST 2020-05-05 09:22:22 -06:00
fuse.rst docs: filesystems: fuse.rst: supress a Sphinx warning 2020-03-10 11:55:25 -06:00
gfs2-glocks.rst docs: filesystems: convert gfs2-glocks.txt to ReST 2020-06-02 19:45:05 +02:00
gfs2-uevents.rst docs: filesystems: convert gfs2-uevents.txt to ReST 2020-03-02 14:03:35 -07:00
gfs2.rst docs: filesystems: convert gfs2.txt to ReST 2020-03-02 14:03:18 -07:00
hfs.rst docs: filesystems: convert hfs.txt to ReST 2020-03-02 14:03:48 -07:00
hfsplus.rst docs: filesystems: convert hfsplus.txt to ReST 2020-03-02 14:03:47 -07:00
hpfs.rst docs: filesystems: convert hpfs.txt to ReST 2020-03-02 14:03:48 -07:00
index.rst Changes in gfs2: 2020-06-08 12:47:09 -07:00
inotify.rst docs: filesystems: convert inotify.txt to ReST 2020-03-02 14:03:55 -07:00
isofs.rst docs: filesystems: convert isofs.txt to ReST 2020-03-02 14:04:06 -07:00
journalling.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
locking.rst Highlights: 2020-06-11 10:33:13 -07:00
locks.rst docs: filesystems: convert mandatory-locking.txt to ReST 2020-05-05 09:22:22 -06:00
mandatory-locking.rst docs: filesystems: convert mandatory-locking.txt to ReST 2020-05-05 09:22:22 -06:00
mount_api.rst docs: filesystems: convert mount_api.txt to ReST 2020-05-05 09:22:23 -06:00
nilfs2.rst docs: filesystems: convert nilfs2.txt to ReST 2020-03-02 14:04:06 -07:00
ntfs.rst docs: filesystems: convert ntfs.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2-online-filecheck.rst docs: filesystems: convert ocfs2-online-filecheck.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2.rst docs: filesystems: convert ocfs2.txt to ReST 2020-03-02 14:04:08 -07:00
omfs.rst docs: filesystems: convert omfs.txt to ReST 2020-03-02 14:04:26 -07:00
orangefs.rst docs: orangefs: fix pvfs2tab literal block 2020-04-28 12:35:47 -06:00
overlayfs.rst ovl: resolve more conflicting mount options 2020-05-13 11:11:24 +02:00
path-lookup.rst sanitize handling of nd->last_type, kill LAST_BIND 2020-03-13 21:08:19 -04:00
path-lookup.txt Replace HTTP links with HTTPS ones: documentation 2020-06-08 09:30:19 -06:00
porting.rst ovl: make private mounts longterm 2020-06-04 10:48:19 +02:00
proc.rst Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-06-04 13:54:34 -07:00
qnx6.rst docs: filesystems: fix typo in qnx6.rst 2020-04-07 13:20:56 -06:00
quota.rst docs: filesystems: convert quota.txt to ReST 2020-05-05 09:22:23 -06:00
ramfs-rootfs-initramfs.rst docs: filesystems: fix renamed references 2020-04-20 15:45:22 -06:00
relay.rst docs: filesystems: convert relay.txt to ReST 2020-03-02 14:04:41 -07:00
romfs.rst docs: filesystems: convert romfs.txt to ReST 2020-03-02 14:04:41 -07:00
seq_file.rst Replace HTTP links with HTTPS ones: documentation 2020-06-08 09:30:19 -06:00
sharedsubtree.rst docs: filesystems: convert sharedsubtree.txt to ReST 2020-05-05 09:22:23 -06:00
splice.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
squashfs.rst docs: filesystems: convert squashfs.txt to ReST 2020-03-02 14:04:41 -07:00
sysfs-pci.rst docs: filesystems: convert sysfs-pci.txt to ReST 2020-05-05 09:22:24 -06:00
sysfs-tagging.rst docs: filesystems: convert sysfs-tagging.txt to ReST 2020-05-05 09:22:24 -06:00
sysfs.rst docs: filesystems: fix renamed references 2020-04-20 15:45:22 -06:00
sysv-fs.rst docs: filesystems: convert sysv-fs.txt to ReST 2020-03-02 14:04:41 -07:00
tmpfs.rst docs: filesystems: convert tmpfs.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs-authentication.rst docs: filesystems: convert ubifs-authentication.rst.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs.rst docs: filesystems: convert ubifs.txt to ReST 2020-03-02 14:04:41 -07:00
udf.rst docs: filesystems: convert udf.txt to ReST 2020-03-02 14:04:52 -07:00
vfat.rst Documentation: filesystems: convert vfat.txt to RST 2020-01-10 10:58:45 -07:00
vfs.rst mm: add readahead address space operation 2020-06-02 10:59:06 -07:00
virtiofs.rst virtiofs: Add mount option and atime behavior to the doc 2020-04-20 17:01:34 +02:00
xfs-delayed-logging-design.rst docs: filesystems: convert xfs-delayed-logging-design.txt to ReST 2020-05-05 09:22:24 -06:00
xfs-self-describing-metadata.rst New code for 5.8: 2020-06-02 19:21:40 -07:00
zonefs.rst This has been a busy cycle for documentation work. Highlights include: 2020-03-30 12:45:23 -07:00