Re: mm snapshot broken-out-2007-01-26-00-36.tar.gz uploaded

Eric W. Biederman
2007-01-29T06:08:48Z

Valdis.Kletnieks@vt.edu writes:

> On Sat, 27 Jan 2007 13:41:16 PST, Andrew Morton said:
>> > > >> The mm snapshot broken-out-2007-01-26-00-36.tar.gz has been uploaded to
>> > > >>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/broken-out-2007-01-26-00-36.tar.gz
>>
>> > I have everything compiling now, mostly. The number of fixes which were
>> > needed was just extraordinary. I'm thinking about making changes...
>
> Aliens ate my brain, part 1:
>
> I tried building an out-of-tree ipfilters (ipt_osf) that worked fine under
> 2.6.20-rc4-mm1. After much scratching my head and adding debugging info,
> I discovered that this code was failing:
>
> p = create_proc_entry("sys/net/ipv4/osf", S_IFREG | 0644, NULL);
> if (!p) {
> ipt_unregister_match(&osf_match);
> return -ENXIO;
> }
>
> After much *more* head-scratching, and adding of printk's, I tracked it down
> into fs/proc/generic.c, in xlate_proc_name:
>
> len = next - cp;
> for (de = de->subdir; de ; de = de->next) {
> if (proc_match(len, cp, de))
> break;
> }
> if (!de) {
> rtn = -ENOENT;
> goto out;
>
> It appears that syssctl-reimplement-the-sysctl-proc-support.patch doesn't
> bother setting the de->subdir, so xlate_proc_name isn't able to find sys/net.

Does it find sys? If so perhaps I should do something even more significant.
I guess if I get many complaints about this I will figure out how to print
out an appropriate error message.

> What's the intended semantics of create_proc_entry and xlate_proc_name in
> this new regime of no subdir pointers? Or am I just (yet again) one of the
> first to trip over a bug?

It is supposed to fail in this instance. If you want something under /proc/sys
you are supposed to use register_sysctl like everyone else. If it's not a
sysctl it should not show up under /proc/sys.

I think I fixed the one in tree instance of this behavior.

I'm glad to see my cleanup uncovering more bugs, I'm sorry you were the one
who had to find it. I will you well fixing your out of tree ipfilter module.

Eric