On Tue, Nov 17, 2020 at 02:07:08PM +0000, Satya Tangirala wrote: > +Direct I/O support > +================== > + > +Direct I/O on encrypted files is supported through blk-crypto. In > +particular, this means the kernel must have CONFIG_BLK_INLINE_ENCRYPTION > +enabled, the filesystem must have had the 'inlinecrypt' mount option > +specified, and either hardware inline encryption must be present, or > +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK must have been enabled. Further, > +the length of any I/O must be aligned to the filesystem block size > +(*not* necessarily the same as the block device's block size). If any of > +these conditions isn't met, attempts to do direct I/O on an encrypted file > +will fall back to buffered I/O. However, there aren't any additional > +requirements on user buffer alignment (apart from those already present > +when using direct I/O on unencrypted files). Actually the position in the file the I/O is targeting must be fs-block aligned too, not just the length of the I/O. It's only the pointer to the user data buffer that no longer needs to be fs-block aligned (this changed between v6 and v7). - Eric