On Tue, Nov 17, 2020 at 02:07:06PM +0000, Satya Tangirala wrote: > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > Wire up ext4 with fscrypt direct I/O support. Direct I/O with fscrypt is > only supported through blk-crypto (i.e. CONFIG_BLK_INLINE_ENCRYPTION must > have been enabled, the 'inlinecrypt' mount option must have been specified, > and either hardware inline encryption support must be present or > CONFIG_BLK_INLINE_ENCYRPTION_FALLBACK must have been enabled). Further, > direct I/O on encrypted files is only supported when the *length* of the > I/O is aligned to the filesystem block size (which is *not* necessarily the > same as the block device's block size). > > fscrypt_limit_io_blocks() is called before setting up the iomap to ensure > that the blocks of each bio that iomap will submit will have contiguous > DUNs. Note that fscrypt_limit_io_blocks() is normally a no-op, as normally > the DUNs simply increment along with the logical blocks. But it's needed > to handle an edge case in one of the fscrypt IV generation methods. > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > Co-developed-by: Satya Tangirala <satyat@xxxxxxxxxx> > Signed-off-by: Satya Tangirala <satyat@xxxxxxxxxx> > Reviewed-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx> Acked-by: Theodore Ts'o <tytso@xxxxxxx>