From owner-cvs-src-old@FreeBSD.ORG Tue Apr 20 10:27:15 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A41F3106566B for ; Tue, 20 Apr 2010 10:27:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 919028FC21 for ; Tue, 20 Apr 2010 10:27:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3KARF0w094859 for ; Tue, 20 Apr 2010 10:27:15 GMT (envelope-from kib@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3KARFDA094858 for cvs-src-old@freebsd.org; Tue, 20 Apr 2010 10:27:15 GMT (envelope-from kib@repoman.freebsd.org) Message-Id: <201004201027.o3KARFDA094858@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to kib@repoman.freebsd.org using -f From: Konstantin Belousov Date: Tue, 20 Apr 2010 10:19:27 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/fs/pseudofs pseudofs_vnops.c src/sys/kern vfs_cache.c src/sys/ufs/ufs ufs_lookup.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2010 10:27:15 -0000 kib 2010-04-20 10:19:27 UTC FreeBSD src repository Modified files: sys/fs/pseudofs pseudofs_vnops.c sys/kern vfs_cache.c sys/ufs/ufs ufs_lookup.c Log: SVN rev 206894 on 2010-04-20 10:19:27Z by kib The cache_enter(9) function shall not be called for doomed dvp. Assert this. In the reported panic, vdestroy() fired the assertion "vp has namecache for ..", because pseudofs may end up doing cache_enter() with reclaimed dvp, after dotdot lookup temporary unlocked dvp. Similar problem exists in ufs_lookup() for "." lookup, when vnode lock needs to be upgraded. Verify that dvp is not reclaimed before calling cache_enter(). Reported and tested by: pho Reviewed by: kan MFC after: 2 weeks Revision Changes Path 1.82 +1 -1 src/sys/fs/pseudofs/pseudofs_vnops.c 1.161 +2 -0 src/sys/kern/vfs_cache.c 1.102 +8 -0 src/sys/ufs/ufs/ufs_lookup.c