summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_subs.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-10-05 06:46:45 +0000
committerjeff <jeff@FreeBSD.org>2003-10-05 06:46:45 +0000
commit2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6 (patch)
tree14f51af774a1d890b324f0c00261296df4bd1c2e /sys/nfsclient/nfs_subs.c
parent5b01a0900244d0181df8b72b8968f1205558569d (diff)
downloadFreeBSD-src-2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6.zip
FreeBSD-src-2b4a2d9fbe0169e1e3c8505035d6d2f22bfc0aa6.tar.gz
- Check the XLOCK before we inspect the vnode.
Diffstat (limited to 'sys/nfsclient/nfs_subs.c')
-rw-r--r--sys/nfsclient/nfs_subs.c4
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);
OpenPOWER on IntegriCloud