fscrypt: update documentation for direct I/O support
Now that direct I/O is supported on encrypted files in some cases, document what these cases are. Link: https://lore.kernel.org/r/20220128233940.79464-6-ebiggers@kernel.org Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
parent
95f58823a6
commit
f78d4e6626
|
@ -1047,8 +1047,8 @@ astute users may notice some differences in behavior:
|
|||
may be used to overwrite the source files but isn't guaranteed to be
|
||||
effective on all filesystems and storage devices.
|
||||
|
||||
- Direct I/O is not supported on encrypted files. Attempts to use
|
||||
direct I/O on such files will fall back to buffered I/O.
|
||||
- Direct I/O is supported on encrypted files only under some
|
||||
circumstances. For details, see `Direct I/O support`_.
|
||||
|
||||
- The fallocate operations FALLOC_FL_COLLAPSE_RANGE and
|
||||
FALLOC_FL_INSERT_RANGE are not supported on encrypted files and will
|
||||
|
@ -1179,6 +1179,27 @@ Inline encryption doesn't affect the ciphertext or other aspects of
|
|||
the on-disk format, so users may freely switch back and forth between
|
||||
using "inlinecrypt" and not using "inlinecrypt".
|
||||
|
||||
Direct I/O support
|
||||
==================
|
||||
|
||||
For direct I/O on an encrypted file to work, the following conditions
|
||||
must be met (in addition to the conditions for direct I/O on an
|
||||
unencrypted file):
|
||||
|
||||
* The file must be using inline encryption. Usually this means that
|
||||
the filesystem must be mounted with ``-o inlinecrypt`` and inline
|
||||
encryption hardware must be present. However, a software fallback
|
||||
is also available. For details, see `Inline encryption support`_.
|
||||
|
||||
* The I/O request must be fully aligned to the filesystem block size.
|
||||
This means that the file position the I/O is targeting, the lengths
|
||||
of all I/O segments, and the memory addresses of all I/O buffers
|
||||
must be multiples of this value. Note that the filesystem block
|
||||
size may be greater than the logical block size of the block device.
|
||||
|
||||
If either of the above conditions is not met, then direct I/O on the
|
||||
encrypted file will fall back to buffered I/O.
|
||||
|
||||
Implementation details
|
||||
======================
|
||||
|
||||
|
|
Loading…
Reference in New Issue