Re: zfs-related(?) panic in cache_enter: wrong vnode type

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Thu, 08 Dec 2011 11:23:44 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

on 08/12/2011 10:13 Pawel Jakub Dawidek said the following:
> On Wed, Dec 07, 2011 at 06:50:35PM +0200, Andriy Gapon wrote:
>> (kgdb) bt #0  doadump (textdump=1) at pcpu.h:224 #1  0xffffffff804f6d3b
>> in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:447 #2
>> 0xffffffff804f63e9 in panic (fmt=0x104 <Address 0x104 out of bounds>) at 
>> /usr/src/sys/kern/kern_shutdown.c:635 #3  0xffffffff80585f46 in
>> cache_enter (dvp=0xfffffe003d4763c0, vp=0xfffffe0142517000,
>> cnp=0xffffff82393b3708) at /usr/src/sys/kern/vfs_cache.c:726 #4
>> 0xffffffff81a90900 in zfs_lookup (dvp=0xfffffe003d4763c0, 
>> nm=0xffffff82393b3140 "..", vpp=0xffffff82393b36e0,
>> cnp=0xffffff82393b3708, nameiop=0, cr=0xfffffe0042e88100,
>> td=0xfffffe000fdfa480, flags=0) at 
>> /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:1470
>
>> 
> Which FreeBSD version is it? Because lines doesn't seem to match neither to
> HEAD nor to stable/8. It would be best of you could send me few lines 
> around zfs_vnops.c:1470 and vfs_cache.c:726.
> 

It's recent svn head, r228017, just with some local unrelated modifications.
1458 #ifdef FREEBSD_NAMECACHE
1459         /*
1460          * Insert name into cache (as non-existent) if appropriate.
1461          */
1462         if (error == ENOENT && (cnp->cn_flags & MAKEENTRY) && nameiop !=
CREATE)
1463                 cache_enter(dvp, *vpp, cnp);
1464         /*
1465          * Insert name into cache if appropriate.
1466          */
1467         if (error == 0 && (cnp->cn_flags & MAKEENTRY)) {
1468                 if (!(cnp->cn_flags & ISLASTCN) ||
1469                     (nameiop != DELETE && nameiop != RENAME)) {
1470                         cache_enter(dvp, *vpp, cnp);
1471                 }
1472         }
1473 #endif

================

 716         if (flag == NCF_ISDOTDOT) {
 717                 /*
 718                  * See if we are trying to add .. entry, but some other
lookup
 719                  * has populated v_cache_dd pointer already.
 720                  */
 721                 if (dvp->v_cache_dd != NULL) {
 722                     CACHE_WUNLOCK();
 723                     cache_free(ncp);
 724                     return;
 725                 }
 726                 KASSERT(vp == NULL || vp->v_type == VDIR,
 727                     ("wrong vnode type %p", vp));
 728                 dvp->v_cache_dd = ncp;
 729         }
- -- 
Andriy Gapon
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJO4IIgAAoJEHSlLSemUf4v5v0H/RqN3RagBBleHYZTY+39gxj3
I2urnYxB+1vi2b9o/B4KRQXi5gByAY3sukDnKrABxXK3ycOOJjQ5o8Xz0NMqcwHY
r6oMnh/4NLpZi+Cwx0LQKycRZuPMsKzYJpMrofE/Q9Nl1EgUjz6Er2fOaEiu1xUO
DAWKrJdgFNE3Kwjy64oqftcC9Aw9g0+lcyVp+Pzw9HRHzw1h8wokH+EvslfFqtJ0
YFCabxTxNQrqpCgv8PEEAAyNiqB7S9X43f5RKNuMFOiwGp8GsP7O6j9AFDUoM9os
+KkkN0hE28jB4daQ0HJpPr9Kz3Mkr91yMT+nxMv1lPH9BmGYWwbx3Jck0c7o+OY=
=8Y/W
-----END PGP SIGNATURE-----
Received on Thu Dec 08 2011 - 08:23:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:21 UTC