Re: [PATCH 2/4] aio: Remove the now superfluous sentinel elements from ctl_table array

From: Eric Biggers
Date: Thu Nov 09 2023 - 11:08:37 EST


On Thu, Nov 09, 2023 at 05:00:40PM +0100, Joel Granados wrote:
> > > static void __init fsverity_init_sysctl(void)
> > > {
> > > +#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES
> > > fsverity_sysctl_header = register_sysctl("fs/verity",
> > > fsverity_sysctl_table);
> > > +#else
> > > + fsverity_sysctl_header = register_sysctl_sz("fs/verity",
> > > + fsverity_sysctl_table, 0);
> > > +#endif
> > > if (!fsverity_sysctl_header)
> > > panic("fsverity sysctl registration failed");
> >
> > This does not make sense, and it causes a build error when CONFIG_FS_VERITY=y
> > and CONFIG_FS_VERITY_BUILTIN_SIGNATURES=n.
> >
> > I think all you need to do is delete the sentinel element, the same as
> > everywhere else. I just tested it, and it works fine.
> I found the reason why I added the CONFIG_FS_VERITY_BUILTIN_SIGNATURES
> here: it is related to
> https://lore.kernel.org/all/20230705212743.42180-3-ebiggers@xxxxxxxxxx/
> where the directory is registered with an element only if
> CONFIG_FS_VERITY_BUILTIN_SIGNATURES is defined. I had forgotten, but I
> even asked for a clarification on the patch :).
>
> I see that that patch made it to v6.6. So the solution is not to remove
> the CONFIG_FS_VERITY_BUILTIN_SIGNATURES, but for me to rebase on top of
> a more up to date base.
>
> @Eric: Please get back to me if the patch in
> https://lore.kernel.org/all/20230705212743.42180-3-ebiggers@xxxxxxxxxx/
> is no longer relevant.
>
> Best.

Yes, that patch was merged in 6.6. I don't think it really matters here though,
other than the fact that it moved the code to a different file. I believe all
you need to do is remove the sentinel element, the same as anywhere else:

diff --git a/fs/verity/init.c b/fs/verity/init.c
index a29f062f6047b..b64a76b9ac362 100644
--- a/fs/verity/init.c
+++ b/fs/verity/init.c
@@ -24,7 +24,6 @@ static struct ctl_table fsverity_sysctl_table[] = {
.extra2 = SYSCTL_ONE,
},
#endif
- { }
};

static void __init fsverity_init_sysctl(void)