acquiring duplicate lock of same type: "vnode interlock"
Jun Kuriyama
kuriyama at imgsrc.co.jp
Thu Feb 12 15:34:51 PST 2004
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 at imgsrc.co.jp> // IMG SRC, Inc.
<kuriyama at FreeBSD.org> // FreeBSD Project
More information about the freebsd-current
mailing list