On Tue, Oct 22, 2019 at 09:37:16AM -0400, Theodore Y. Ts'o wrote: > On Mon, Oct 21, 2019 at 04:03:54PM -0700, Eric Biggers wrote: > > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > > > INLINE_CRYPT_OPTIMIZED encryption policies have special requirements > > from the filesystem: > > > > - Inode numbers must never change, even if the filesystem is resized > > - Inode numbers must be <= 32 bits > > - File logical block numbers must be <= 32 bits > > You need to guarantee more than this; you also need to guarantee that > the logical block number may not change. Fortunately, because the > original per-file key scheme used a logical block tweak, we've > prohibited this already, and we didn't relax this restriction for > files encrpyted using DIRECT_KEY. So it's a requirement which we > already meet, but we should document this requirement explicitly --- > both here and also in Documentations/filesystems/fscrypt.rst. > > Otherwise, looks good. Feel free to add: > > Reviewed-by: Theodore Ts'o <tytso@xxxxxxx> > This is meant to list the requirements over the current policies. If we wanted to list all requirements on filesystems to support any fscrypt policy at all, we'd also have to list a lot of other things like that the filesystem must implement all the fscrypt_operations, must call all the needed hooks, must support encrypted filenames and symlinks, etc... I'll change the beginning of this commit message to "INLINE_CRYPT_OPTIMIZED encryption policies have special requirements from the filesystem, in comparison to the current encryption policies:" ... and in the previous patch I'll add a note in the "Contents encryption" section of Documentation/filesystems/fscrypt.rst that the use of the file logical block number means that filesystems must not allow operations that would change it. - Eric