Re: [Intel-gfx] [PATCH 06/13] ocfs2: use new sysctl subdir helper register_sysctl_subdir()

From: Luis Chamberlain
Date: Fri May 29 2020 - 07:49:17 EST


On Fri, May 29, 2020 at 01:23:19AM -0700, Kees Cook wrote:
> On Fri, May 29, 2020 at 07:41:01AM +0000, Luis Chamberlain wrote:
> > This simplifies the code considerably. The following coccinelle
> > SmPL grammar rule was used to transform this code.
> >
> > // pycocci sysctl-subdir.cocci fs/ocfs2/stackglue.c
> >
> > @c1@
> > expression E1;
> > identifier subdir, sysctls;
> > @@
> >
> > static struct ctl_table subdir[] = {
> > {
> > .procname = E1,
> > .maxlen = 0,
> > .mode = 0555,
> > .child = sysctls,
> > },
> > { }
> > };
> >
> > @c2@
> > identifier c1.subdir;
> >
> > expression E2;
> > identifier base;
> > @@
> >
> > static struct ctl_table base[] = {
> > {
> > .procname = E2,
> > .maxlen = 0,
> > .mode = 0555,
> > .child = subdir,
> > },
> > { }
> > };
> >
> > @c3@
> > identifier c2.base;
> > identifier header;
> > @@
> >
> > header = register_sysctl_table(base);
> >
> > @r1 depends on c1 && c2 && c3@
> > expression c1.E1;
> > identifier c1.subdir, c1.sysctls;
> > @@
> >
> > -static struct ctl_table subdir[] = {
> > - {
> > - .procname = E1,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = sysctls,
> > - },
> > - { }
> > -};
> >
> > @r2 depends on c1 && c2 && c3@
> > identifier c1.subdir;
> >
> > expression c2.E2;
> > identifier c2.base;
> > @@
> > -static struct ctl_table base[] = {
> > - {
> > - .procname = E2,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = subdir,
> > - },
> > - { }
> > -};
> >
> > @r3 depends on c1 && c2 && c3@
> > expression c1.E1;
> > identifier c1.sysctls;
> > expression c2.E2;
> > identifier c2.base;
> > identifier c3.header;
> > @@
> >
> > header =
> > -register_sysctl_table(base);
> > +register_sysctl_subdir(E2, E1, sysctls);
> >
> > Generated-by: Coccinelle SmPL
> >
> > Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
> > ---
> > fs/ocfs2/stackglue.c | 27 ++++-----------------------
> > 1 file changed, 4 insertions(+), 23 deletions(-)
> >
> > diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
> > index a191094694c6..addafced7f59 100644
> > --- a/fs/ocfs2/stackglue.c
> > +++ b/fs/ocfs2/stackglue.c
> > @@ -677,28 +677,8 @@ static struct ctl_table ocfs2_mod_table[] = {
> > },
> > { }
> > };
> > -
> > -static struct ctl_table ocfs2_kern_table[] = {
> > - {
> > - .procname = "ocfs2",
> > - .data = NULL,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = ocfs2_mod_table
> > - },
> > - { }
> > -};
> > -
> > -static struct ctl_table ocfs2_root_table[] = {
> > - {
> > - .procname = "fs",
> > - .data = NULL,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = ocfs2_kern_table
> > - },
> > - { }
> > -};
> > + .data = NULL,
> > + .data = NULL,
>
> The conversion script doesn't like the .data field assignments. ;)
>
> Was this series built with allmodconfig? I would have expected this to
> blow up very badly. :)

Yikes, sense, you're right. Nope, I left the random config tests to
0day. Will fix, thanks!

Luis