svn commit: r189539 - head/sys/kern
Giorgos Keramidas
keramida at ceid.upatras.gr
Tue Mar 10 02:26:49 PDT 2009
On Sun, 8 Mar 2009 19:05:54 +0000 (UTC), Joe Marcus Clarke <marcus at FreeBSD.org> wrote:
> Author: marcus (doc,ports committer)
> Date: Sun Mar 8 19:05:53 2009
> New Revision: 189539
> URL: http://svn.freebsd.org/changeset/base/189539
>
> Log:
> Add a default implementation for VOP_VPTOCNP(9) which scans the parent
> directory of a vnode to find a dirent with a matching file number. The
> name from that dirent is then used to provide the component name.
>
> Note: if the initial vnode argument is not a directory itself, then
> the default VOP_VPTOCNP(9) implementation still returns ENOENT.
>
> Reviewed by: kib
> Approved by: kib
> Tested by: pho
I think this panics nullfs mounts. I have a kernel build from
subversion changeset /head at 189540 that panics instantly with:
panic: vrele: negative ref cnt
inside nullfs, every time I do something like:
# mount -t nullfs /home/build/obj /usr/obj
# mount -t nullfs /home/build/src /usr/src
# cd /usr/src/usr.sbin/fwcontrol
# make clean
# make all
The `make all' command never returns, and the resulting kgdb backtrace
is something like:
(kgdb) bt
#0 doadump () at pcpu.h:246
#1 0xc063d4be in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:420
#2 0xc063d792 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:576
#3 0xc06c8fb1 in vrele (vp=0xc8896648) at /usr/src/sys/kern/vfs_subr.c:2191
#4 0xc6761610 in null_nodeget (mp=0xc674f000, lowervp=0xc8896648,
vpp=0xe9081bf0)
at /usr/src/sys/modules/nullfs/../../fs/nullfs/null_subr.c:204
#5 0xc6762601 in null_bypass (ap=0xe9081bdc)
at /usr/src/sys/modules/nullfs/../../fs/nullfs/null_vnops.c:325
#6 0xc08d7173 in VOP_VPTOCNP_APV (vop=0xc6763240, a=0xe9081bdc)
at vnode_if.c:2871
#7 0xc06b4e89 in vn_vptocnp (vp=0xe9081c24, bp=0xe9081c28,
buf=0xc63ce000 "ήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐήήΐή"...,
buflen=0xe9081c48) at vnode_if.h:1541
#8 0xc06b520a in vn_fullpath1 (td=Variable "td" is not available.
) at /usr/src/sys/kern/vfs_cache.c:1001
#9 0xc06b55a0 in kern___getcwd (td=0xc6de56c0,
buf=0xbfbfddf6 <Address 0xbfbfddf6 out of bounds>, bufseg=UIO_USERSPACE,
buflen=1024) at /usr/src/sys/kern/vfs_cache.c:795
#10 0xc06b5749 in __getcwd (td=0xc6de56c0, uap=0xe9081cf8)
at /usr/src/sys/kern/vfs_cache.c:769
#11 0xc08cc973 in syscall (frame=0xe9081d38)
at /usr/src/sys/i386/i386/trap.c:1076
---Type <return> to continue, or q <return> to quit---
#12 0xc08b0eb0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:261
#13 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) q
root at kobe:/var/crash# exit
exit
More information about the svn-src-all
mailing list