From owner-freebsd-current@FreeBSD.ORG Wed Feb 11 17:15:12 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D611E16A4CF for ; Wed, 11 Feb 2004 17:15:12 -0800 (PST) Received: from white.imgsrc.co.jp (ns.imgsrc.co.jp [210.226.20.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 61B5F43D45 for ; Wed, 11 Feb 2004 17:15:12 -0800 (PST) (envelope-from kuriyama@imgsrc.co.jp) Received: from localhost (localhost [127.0.0.1]) by white.imgsrc.co.jp (Postfix) with ESMTP id 69BA12841B4; Thu, 12 Feb 2004 10:15:10 +0900 (JST) Received: from black.imgsrc.co.jp (black.imgsrc.co.jp [IPv6:2001:218:422:2::130]) by white.imgsrc.co.jp (Postfix) with ESMTP id 1062828419B; Thu, 12 Feb 2004 10:15:08 +0900 (JST) Received: from black.imgsrc.co.jp (black.imgsrc.co.jp [IPv6:2001:218:422:2::130]) by black.imgsrc.co.jp (Postfix) with ESMTP id DC77B1E4639; Thu, 12 Feb 2004 10:15:07 +0900 (JST) Date: Thu, 12 Feb 2004 10:15:07 +0900 Message-ID: <7m65ed2j50.wl@black.imgsrc.co.jp> From: Jun Kuriyama To: Kirk McKusick User-Agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.3 (i386--freebsd) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII X-Virus-Scanned: by AMaViS snapshot-20020531 X-Mailman-Approved-At: Thu, 12 Feb 2004 05:25:00 -0800 cc: Current Subject: acquiring duplicate lock of same type: "vnode interlock" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Feb 2004 01:15:12 -0000 Is this patch safe for locking? This may remove warnings below: acquiring duplicate lock of same type: "vnode interlock" 1st vnode interlock @ ufs/ffs/ffs_snapshot.c:488 2nd vnode interlock @ ufs/ffs/ffs_snapshot.c:491 Index: ffs_snapshot.c =================================================================== RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_snapshot.c,v retrieving revision 1.77 diff -u -r1.77 ffs_snapshot.c --- ffs_snapshot.c 4 Jan 2004 04:08:34 -0000 1.77 +++ ffs_snapshot.c 12 Feb 2004 01:08:31 -0000 @@ -488,9 +488,10 @@ VI_LOCK(devvp); snaphead = &devvp->v_rdev->si_snapshots; if ((xp = TAILQ_FIRST(snaphead)) != NULL) { - VI_LOCK(vp); - vp->v_vnlock = ITOV(xp)->v_vnlock; + struct lock *lkp = ITOV(xp)->v_vnlock; VI_UNLOCK(devvp); + VI_LOCK(vp); + vp->v_vnlock = lkp; } else { struct lock *lkp; @@ -1793,9 +1794,10 @@ */ VI_LOCK(devvp); if ((xp = TAILQ_FIRST(snaphead)) != NULL) { - VI_LOCK(vp); - vp->v_vnlock = ITOV(xp)->v_vnlock; + struct lock *lkp = ITOV(xp)->v_vnlock; VI_UNLOCK(devvp); + VI_LOCK(vp); + vp->v_vnlock = lkp; } else { struct lock *lkp; -- Jun Kuriyama // IMG SRC, Inc. // FreeBSD Project