fsverity: move sysctl registration out of signature.c
authorEric Biggers <ebiggers@google.com>
Wed, 5 Jul 2023 21:27:43 +0000 (14:27 -0700)
committerEric Biggers <ebiggers@google.com>
Wed, 12 Jul 2023 05:57:03 +0000 (22:57 -0700)
commit456ae5fe9b448f44ebe98b391a3bae9c75df465e
treec1969c3efa19b5092acc3619c5bba72faa4b80d2
parente77000ccc531088c486fe5fbd13416fd5e3d2714
fsverity: move sysctl registration out of signature.c

Currently the registration of the fsverity sysctls happens in
signature.c, which couples it to CONFIG_FS_VERITY_BUILTIN_SIGNATURES.

This makes it hard to add new sysctls unrelated to builtin signatures.

Also, some users have started checking whether the directory
/proc/sys/fs/verity exists as a way to tell whether fsverity is
supported.  This isn't the intended method; instead, the existence of
/sys/fs/$fstype/features/verity should be checked, or users should just
try to use the fsverity ioctls.  Regardless, it should be made to work
as expected without a dependency on CONFIG_FS_VERITY_BUILTIN_SIGNATURES.

Therefore, move the sysctl registration into init.c.  With
CONFIG_FS_VERITY_BUILTIN_SIGNATURES, nothing changes.  Without it, but
with CONFIG_FS_VERITY, an empty list of sysctls is now registered.

Link: https://lore.kernel.org/r/20230705212743.42180-3-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/verity/fsverity_private.h
fs/verity/init.c
fs/verity/signature.c