Subject: Re: 4.99.16 (-current) panic
To: Gert Doering <gert@greenie.muc.de>
From: Antti Kantee <pooka@cs.hut.fi>
List: tech-kern
Date: 04/09/2007 18:46:48
[let's move this to tech-kern]

On Mon Apr 09 2007 at 17:13:07 +0200, Gert Doering wrote:
> Hi,
> 
> On Mon, Apr 09, 2007 at 12:42:23PM +0200, Juergen Hannken-Illjes wrote:
> > > If I try to understand the namei() source in kern/vfs_lookup.c, it's
> > > not exactly clear to me what it's complaining about - there are many calls
> > > to a function "VREF()", but they can't all be wrong??!?
> > 
> > If you have a `netbsd.gdb' of this kernel you could try to locate the
> > VREF with gdb `list *(namei+0xb4)'.
> 
> ok.  If I haven't broken anything by doing only a partial recompile
> after enabling "option DEBUG" etc., this is where it dies:
> 
> (gdb) list *(namei+0xb4)
> 0x12369b4 is in namei (/home/src-current/sys/kern/vfs_lookup.c:335).
> 330             if (cnp->cn_pnbuf[0] == '/') {
> 331                     dp = ndp->ni_rootdir;
> 332                     VREF(dp);
> 333             } else {
> 334                     dp = cwdi->cwdi_cdir;
> 335                     VREF(dp);
> 336             }
> 337             vn_lock(dp, LK_EXCLUSIVE | LK_RETRY);
> 338             for (;;) {
> 339                     if (!dp->v_mount) {
> 
> now what to do with that...?

Could you print the vnode (print *dp in the appropriate stack frame)
so that we get a sense of if it contains just garbage or if the refcount
is simply wrong.  Also, include print *cwdi, *cwdi->cwdi_rdir and *ndp
for a good measure.

-- 
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"