summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs/ffs_snapshot.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-09-25 02:47:49 +0000
committerjeff <jeff@FreeBSD.org>2002-09-25 02:47:49 +0000
commit90e87c8eb5196d8799b0b00f7b8ceb797961c4b4 (patch)
tree336578d800f6f374d0da80c370cc543415cf7931 /sys/ufs/ffs/ffs_snapshot.c
parent41b9d1ca5dee24b3a1e1d3bb37393b143389de73 (diff)
downloadFreeBSD-src-90e87c8eb5196d8799b0b00f7b8ceb797961c4b4.zip
FreeBSD-src-90e87c8eb5196d8799b0b00f7b8ceb797961c4b4.tar.gz
- Document broken locking.
- Use vrefcnt().
Diffstat (limited to 'sys/ufs/ffs/ffs_snapshot.c')
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index 63dccac..0032f0f 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -397,11 +397,10 @@ loop:
goto loop;
nvp = TAILQ_NEXT(xvp, v_nmntvnodes);
mtx_unlock(&mntvnode_mtx);
- mtx_lock(&xvp->v_interlock);
- if (xvp->v_usecount == 0 || xvp->v_type == VNON ||
+ mp_fixme("Unlocked GETATTR.");
+ if (vrefcnt(xvp) == 0 || xvp->v_type == VNON ||
(VOP_GETATTR(xvp, &vat, td->td_proc->p_ucred, td) == 0 &&
vat.va_nlink > 0)) {
- mtx_unlock(&xvp->v_interlock);
mtx_lock(&mntvnode_mtx);
continue;
}
OpenPOWER on IntegriCloud