2002-03-10 19:55:46

by Paul Komkoff

[permalink] [raw]
Subject: Bug in do_mounts.c/namespace.c/devfs ?

This is clearly reproducible here.
Let's have 2.4.19-pre2-ac{2,3,maybe 4}.
Let compile in devfs support but dont enable mount on boot etc.

After boot we will have in /proc/mounts the following line
devfs /dev devfs
(other mounts)

Digging into do_mounts.c brought me to following code fragments:


do_devfs = 1;
}
}
sys_chdir("/dev");
sys_unlink("root");
sys_mknod("root", S_IFBLK|0600, kdev_t_to_nr(ROOT_DEV));
if (do_devfs)
sys_mount("devfs", ".", "devfs", 0, NULL);

followed then by ...

done:
putname(fs_names);
if (do_devfs)
sys_umount(".", 0);

I am unfamiliar with devfs and vfs code so my bug-hunting go very slowly.
Maybe somebody will point into right direction ?

The only thing I can add that in 2.4.17 all was fine.

--
Paul P 'Stingray' Komkoff 'Greatest' Jr // (icq)23200764 // (irc)Spacebar
PPKJ1-RIPE // (smtp)[email protected] // (http)stingr.net // (pgp)0xA4B4ECA4


2002-03-10 21:14:06

by Alexander Viro

[permalink] [raw]
Subject: Re: Bug in do_mounts.c/namespace.c/devfs ?



On Sun, 10 Mar 2002, Paul P Komkoff Jr wrote:

> This is clearly reproducible here.
> Let's have 2.4.19-pre2-ac{2,3,maybe 4}.
> Let compile in devfs support but dont enable mount on boot etc.
>
> After boot we will have in /proc/mounts the following line
> devfs /dev devfs
> (other mounts)

> sys_umount(".", 0);

Good catch - it should be
sys_umount(".", MNT_DETACH);