Date: Thu, 12 Feb 2004 10:15:07 +0900 From: Jun Kuriyama <kuriyama@imgsrc.co.jp> To: Kirk McKusick <mckusick@mckusick.com> Cc: Current <freebsd-current@FreeBSD.org> Subject: acquiring duplicate lock of same type: "vnode interlock" Message-ID: <7m65ed2j50.wl@black.imgsrc.co.jp>
next in thread | raw e-mail | index | archive | help
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@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?7m65ed2j50.wl>