diff options
author | jeff <jeff@FreeBSD.org> | 2003-10-05 06:46:45 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-10-05 06:46:45 +0000 |
commit | 2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6 (patch) | |
tree | 14f51af774a1d890b324f0c00261296df4bd1c2e /sys/nfsclient | |
parent | 5b01a0900244d0181df8b72b8968f1205558569d (diff) | |
download | FreeBSD-src-2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6.zip FreeBSD-src-2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6.tar.gz |
- Check the XLOCK before we inspect the vnode.
Diffstat (limited to 'sys/nfsclient')
-rw-r--r-- | sys/nfsclient/nfs_subs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c index e19f02f..e43bd92 100644 --- a/sys/nfsclient/nfs_subs.c +++ b/sys/nfsclient/nfs_subs.c @@ -795,6 +795,10 @@ loop: goto loop; nvp = TAILQ_NEXT(vp, v_nmntvnodes); VI_LOCK(vp); + if (vp->v_iflag & VI_XLOCK) { + VI_UNLOCK(vp); + continue; + } mtx_unlock(&mntvnode_mtx); for (bp = TAILQ_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) { nbp = TAILQ_NEXT(bp, b_vnbufs); |