From owner-cvs-sys Fri Apr 25 21:09:54 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id VAA03442 for cvs-sys-outgoing; Fri, 25 Apr 1997 21:09:54 -0700 (PDT) Received: from freefall.freebsd.org (freefall.cdrom.com [204.216.27.21]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id VAA03405; Fri, 25 Apr 1997 21:09:41 -0700 (PDT) From: KATO Takenori Received: (from kato@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id VAA03982; Fri, 25 Apr 1997 21:09:40 -0700 (PDT) Date: Fri, 25 Apr 1997 21:09:40 -0700 (PDT) Message-Id: <199704260409.VAA03982@freefall.freebsd.org> To: CVS-committers@FreeBSD.org, cvs-all@FreeBSD.org, cvs-sys@FreeBSD.org Subject: cvs commit: src/sys/miscfs/union union_vnops.c Sender: owner-cvs-sys@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk kato 97/04/25 21:09:40 Modified: sys/miscfs/union union_vnops.c Log: Do not clear UN_ULOCK in certain case. Our vput calls vm_object_deallocate() --> vm_object_terminate(). The vm_object_terminate() calls vn_lock(), since UN_LOCKED has been already cleared in union_unlock(). Then, union_lock locks upper vnode when UN_ULOCK is not set. The upper vnode is not unlocked when UN_KLOCK is set in union_unlock(), thus, union_lock tries to lock locked vnode and we get panic. Revision Changes Path 1.28 +12 -2 src/sys/miscfs/union/union_vnops.c