Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Feb 2004 08:34:48 +0900
From:      Jun Kuriyama <kuriyama@imgsrc.co.jp>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        Current <freebsd-current@freebsd.org>
Subject:   Re: acquiring duplicate lock of same type: "vnode interlock"
Message-ID:  <7mptcjzxbb.wl@black.imgsrc.co.jp>
In-Reply-To: <20040213060939.Q24610@gamplex.bde.org>
References:  <7m65ed2j50.wl@black.imgsrc.co.jp> <20040213060939.Q24610@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At Fri, 13 Feb 2004 06:16:21 +1100 (EST),
Bruce Evans wrote:
> > @@ -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;
> 
> (1) Nested declaration.
> (2) Initialization in declaration.
> (3) No blank line after declaration.

Thanks!  Is this better than I committed?


Index: ffs_snapshot.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_snapshot.c,v
retrieving revision 1.78
diff -u -r1.78 ffs_snapshot.c
--- ffs_snapshot.c	12 Feb 2004 08:52:08 -0000	1.78
+++ ffs_snapshot.c	12 Feb 2004 23:33:07 -0000
@@ -488,7 +488,9 @@
 	VI_LOCK(devvp);
 	snaphead = &devvp->v_rdev->si_snapshots;
 	if ((xp = TAILQ_FIRST(snaphead)) != NULL) {
-		struct lock *lkp = ITOV(xp)->v_vnlock;
+		struct lock *lkp;
+
+		lkp = ITOV(xp)->v_vnlock;
 		VI_UNLOCK(devvp);
 		VI_LOCK(vp);
 		vp->v_vnlock = lkp;
@@ -1794,7 +1796,9 @@
 		 */
 		VI_LOCK(devvp);
 		if ((xp = TAILQ_FIRST(snaphead)) != NULL) {
-			struct lock *lkp = ITOV(xp)->v_vnlock;
+			struct lock *lkp;
+
+			lkp = ITOV(xp)->v_vnlock;
 			VI_UNLOCK(devvp);
 			VI_LOCK(vp);
 			vp->v_vnlock = lkp;


-- 
Jun Kuriyama <kuriyama@imgsrc.co.jp> // IMG SRC, Inc.
             <kuriyama@FreeBSD.org> // FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7mptcjzxbb.wl>