diff options
author | jeff <jeff@FreeBSD.org> | 2002-09-25 02:47:49 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2002-09-25 02:47:49 +0000 |
commit | 90e87c8eb5196d8799b0b00f7b8ceb797961c4b4 (patch) | |
tree | 336578d800f6f374d0da80c370cc543415cf7931 /sys/ufs/ffs/ffs_snapshot.c | |
parent | 41b9d1ca5dee24b3a1e1d3bb37393b143389de73 (diff) | |
download | FreeBSD-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.c | 5 |
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; } |