Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Mar 2009 11:03:09 +0200
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        Joe Marcus Clarke <marcus@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r189539 - head/sys/kern
Message-ID:  <878wndeomq.fsf@kobe.laptop>
In-Reply-To: <200903081905.n28J5sFQ092475@svn.freebsd.org> (Joe Marcus Clarke's message of "Sun, 8 Mar 2009 19:05:54 %2B0000 (UTC)")
References:  <200903081905.n28J5sFQ092475@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 8 Mar 2009 19:05:54 +0000 (UTC), Joe Marcus Clarke <marcus@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@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=3D260) at /usr/src/sys/kern/kern_shutdown.c=
:420
  #2  0xc063d792 in panic (fmt=3DVariable "fmt" is not available.
  ) at /usr/src/sys/kern/kern_shutdown.c:576
  #3  0xc06c8fb1 in vrele (vp=3D0xc8896648) at /usr/src/sys/kern/vfs_subr.c=
:2191
  #4  0xc6761610 in null_nodeget (mp=3D0xc674f000, lowervp=3D0xc8896648,
      vpp=3D0xe9081bf0)
      at /usr/src/sys/modules/nullfs/../../fs/nullfs/null_subr.c:204
  #5  0xc6762601 in null_bypass (ap=3D0xe9081bdc)
      at /usr/src/sys/modules/nullfs/../../fs/nullfs/null_vnops.c:325
  #6  0xc08d7173 in VOP_VPTOCNP_APV (vop=3D0xc6763240, a=3D0xe9081bdc)
      at vnode_if.c:2871
  #7  0xc06b4e89 in vn_vptocnp (vp=3D0xe9081c24, bp=3D0xe9081c28,
      buf=3D0xc63ce000 "=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=
=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=
=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=
=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=
=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=
=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=
=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=
=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=
=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=
=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=
=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=
=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=
=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=
=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=
=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=
=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=CE=AE=CE=90=C2=AD=CE=AE=
=CE=AE=CE=90=C2=AD=CE=AE"...,
      buflen=3D0xe9081c48) at vnode_if.h:1541
  #8  0xc06b520a in vn_fullpath1 (td=3DVariable "td" is not available.
  ) at /usr/src/sys/kern/vfs_cache.c:1001
  #9  0xc06b55a0 in kern___getcwd (td=3D0xc6de56c0,
      buf=3D0xbfbfddf6 <Address 0xbfbfddf6 out of bounds>, bufseg=3DUIO_USE=
RSPACE,
      buflen=3D1024) at /usr/src/sys/kern/vfs_cache.c:795
  #10 0xc06b5749 in __getcwd (td=3D0xc6de56c0, uap=3D0xe9081cf8)
      at /usr/src/sys/kern/vfs_cache.c:769
  #11 0xc08cc973 in syscall (frame=3D0xe9081d38)
      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@kobe:/var/crash# exit
  exit




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