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