Subject: Re: 4.99.16 (-current) panic
To: Gert Doering <gert@greenie.muc.de>
From: Antti Kantee <pooka@cs.hut.fi>
List: port-sparc64
Date: 04/09/2007 23:42:18
On Mon Apr 09 2007 at 22:19:34 +0200, Gert Doering wrote:
> > Ok, that's pretty obvious stuff.
> >
> > } else if (SCARG(uap, flags) & MNT_UPDATE) {
> > error = mount_update(l, vp, SCARG(uap, path),
> > SCARG(uap, flags), SCARG(uap, data), &nd);
> > vput(vp);
> >
> > and (mount_update())
> >
> > /* We can't operate on VROOT here. */
> > if ((vp->v_flag & VROOT) == 0) {
> > vput(vp);
> > error = EINVAL;
> > goto out;
> > }
>
> I need to believe that, if you say so :-) (I find this quite non-obvious,
> to be honest :-) ).
Oh, sorry, I skipped the explanation here in my previous mail.
The problem was that the same vnode was unlocked and released twice due
to programming error. This happened if mount -u (mount(2) with the flag
MNT_UPDATE) was done for a directory which is *not* the root directory
of a file system.
Also, the comment there is reversed. It should say "we can operate only
on VROOT".
--
Antti Kantee <pooka@iki.fi> Of course he runs NetBSD
http://www.iki.fi/pooka/ http://www.NetBSD.org/
"la qualité la plus indispensable du cuisinier est l'exactitude"