Luis Chamberlain <mcgrof@xxxxxxxxxx> writes: > On Tue, May 12, 2020 at 12:40:55PM -0500, Eric W. Biederman wrote: >> Luis Chamberlain <mcgrof@xxxxxxxxxx> writes: >> >> > On Tue, May 12, 2020 at 06:52:35AM -0500, Eric W. Biederman wrote: >> >> Luis Chamberlain <mcgrof@xxxxxxxxxx> writes: >> >> >> >> > +static struct ctl_table fs_base_table[] = { >> >> > + { >> >> > + .procname = "fs", >> >> > + .mode = 0555, >> >> > + .child = fs_table, >> >> > + }, >> >> > + { } >> >> > +}; >> >> ^^^^^^^^^^^^^^^^^^^^^^^^ You don't need this at all. >> >> > > +static int __init fs_procsys_init(void) >> >> > +{ >> >> > + struct ctl_table_header *hdr; >> >> > + >> >> > + hdr = register_sysctl_table(fs_base_table); >> >> ^^^^^^^^^^^^^^^^^^^^^ Please use register_sysctl instead. >> >> AKA >> >> hdr = register_sysctl("fs", fs_table); >> > >> > Ah, much cleaner thanks! >> >> It is my hope you we can get rid of register_sysctl_table one of these >> days. It was the original interface but today it is just a >> compatibility wrapper. >> >> I unfortunately ran out of steam last time before I finished converting >> everything over. > > Let's give it one more go. I'll start with the fs stuff. Just to be clear moving the tables out of kernel/sysctl.c is a related but slightly different problem. Today it looks like there are 35 calls of register_sysctl_table and 9 calls of register_sysctl_paths. Among them is lib/sysctl_test.c and check-sysctl-docs. Meanwhile I can only find 5 calls to register_sysctl in the tree so it looks like I didn't get very far converting things over. Eric