summaryrefslogtreecommitdiff
path: root/sys/gnu
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2003-10-05 06:43:03 +0000
committerJeff Roberson <jeff@FreeBSD.org>2003-10-05 06:43:03 +0000
commit6acdfd69be1438d21d67eafea38ef11c24de1570 (patch)
tree7dbe283484bf6ca737b531492fd34aaebf310dd3 /sys/gnu
parentea5c2ab71280621ea536b7650db745307d1e3242 (diff)
Notes
Diffstat (limited to 'sys/gnu')
-rw-r--r--sys/gnu/ext2fs/ext2_vfsops.c8
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vfsops.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c
index b8b15be131f0..c9544c163988 100644
--- a/sys/gnu/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/ext2fs/ext2_vfsops.c
@@ -577,6 +577,10 @@ loop:
}
nvp = TAILQ_NEXT(vp, v_nmntvnodes);
VI_LOCK(vp);
+ if (vp->v_iflag & VI_XLOCK) {
+ VI_UNLOCK(vp);
+ continue;
+ }
mtx_unlock(&mntvnode_mtx);
/*
* Step 4: invalidate all inactive vnodes.
@@ -906,6 +910,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);
ip = VTOI(vp);
if (vp->v_type == VNON ||
diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c
index b8b15be131f0..c9544c163988 100644
--- a/sys/gnu/fs/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c
@@ -577,6 +577,10 @@ loop:
}
nvp = TAILQ_NEXT(vp, v_nmntvnodes);
VI_LOCK(vp);
+ if (vp->v_iflag & VI_XLOCK) {
+ VI_UNLOCK(vp);
+ continue;
+ }
mtx_unlock(&mntvnode_mtx);
/*
* Step 4: invalidate all inactive vnodes.
@@ -906,6 +910,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);
ip = VTOI(vp);
if (vp->v_type == VNON ||