]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
fscrypt: compute max_lblk_bits from s_maxbytes and block size
authorEric Biggers <ebiggers@google.com>
Mon, 25 Sep 2023 05:54:49 +0000 (22:54 -0700)
committerEric Biggers <ebiggers@google.com>
Tue, 26 Sep 2023 05:34:30 +0000 (22:34 -0700)
commitf0904e8bc3c513e9fd50bdca5365f998578177a0
treea4283956108b4d0883cb5f8419b2fad1415b265c
parent40e13e18168fd0f1a6ad10166f5042a21c47ab99
fscrypt: compute max_lblk_bits from s_maxbytes and block size

For a given filesystem, the number of bits used by the maximum file
logical block number is computable from the maximum file size and the
block size.  These values are always present in struct super_block.
Therefore, compute it this way instead of using the value from
fscrypt_operations::get_ino_and_lblk_bits.  Since filesystems always
have to set the super_block fields anyway, this avoids having to provide
this information redundantly via fscrypt_operations.

This change is in preparation for adding support for sub-block data
units.  For that, the value that is needed will become "the maximum file
data unit index".  A hardcoded value won't suffice for that; it will
need to be computed anyway.

Link: https://lore.kernel.org/r/20230925055451.59499-4-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/crypto/fscrypt_private.h
fs/crypto/inline_crypt.c
fs/crypto/policy.c