Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jul 2003 07:00:27 -0700 (PDT)
From:      Peter Edwards <peter.edwards@openet-telecom.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/53004: union_lookup returning . (0xbc332e90) not same as startdir (0xc1fa8a40)
Message-ID:  <200307311400.h6VE0RSa073211@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/53004; it has been noted by GNATS.

From: Peter Edwards <peter.edwards@openet-telecom.com>
To: freebsd-gnats-submit@FreeBSD.org, scrappy@hub.org
Cc: alsbergt@cs.huji.ac.il
Subject: Re: kern/53004: union_lookup returning . (0xbc332e90) not same as startdir (0xc1fa8a40)
Date: Thu, 31 Jul 2003 14:46:24 +0100

 Hi,
 
 The DIAGNOSTIC code is checking that if you are looking up entry "." in 
 directory "dir", then the  returned node should be the same as the one passed 
 in (ie, "." must be a hard link to the parent directory). You're looking up 
 "." in something that's not a directory, so the lookup has failed. In this 
 case there is no returned vnode, so the check is invalid.
 For Tom's example, error is definitely "ENOTDIR" at that point. Can you check 
 your core to see if this is definitely the case?
 
 Try adding error == 0 to the start of the "if" surrounding the panic:
 
 >        if (cnp->cn_namelen == 1 &&
 becomes
 >        if (error == 0 && cnp->cn_namelen == 1 &&
 
 I also figure that the a->a_vpp in the panic line should be *a->a_vpp, so you 
 can actually see the returned vnode, rather than the pointer to its 
 container, as it is, it's comparing apples [vnode *] to oranges [vnode **]
 
 Cheers,
 Peter.
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307311400.h6VE0RSa073211>