summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_export.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1997-05-06 15:19:38 +0000
committerphk <phk@FreeBSD.org>1997-05-06 15:19:38 +0000
commitd8e3734a094ebf25dc5971228ebeb15ff2c6a0cf (patch)
tree5d897d4f176b8c11424ae0f403d3714ec7f37110 /sys/kern/vfs_export.c
parent7af09e9fc1a2e032df6e3292831e44e363438aa2 (diff)
downloadFreeBSD-src-d8e3734a094ebf25dc5971228ebeb15ff2c6a0cf.zip
FreeBSD-src-d8e3734a094ebf25dc5971228ebeb15ff2c6a0cf.tar.gz
Fix a race condition that did, after all, exist.
Reviewed by: phk Submitted by: dfr
Diffstat (limited to 'sys/kern/vfs_export.c')
-rw-r--r--sys/kern/vfs_export.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c
index 295c233..353c867 100644
--- a/sys/kern/vfs_export.c
+++ b/sys/kern/vfs_export.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.84 1997/04/30 03:09:15 dyson Exp $
+ * $Id: vfs_subr.c,v 1.85 1997/05/04 09:17:29 phk Exp $
*/
/*
@@ -2149,8 +2149,10 @@ vtouch(vp)
return;
}
if (simple_lock_try(&vnode_free_list_slock)) {
- TAILQ_REMOVE(&vnode_free_list, vp, v_freelist);
- TAILQ_INSERT_TAIL(&vnode_free_list, vp, v_freelist);
+ if (vp->v_freelist.tqe_prev != (struct vnode **)0xdeadb) {
+ TAILQ_REMOVE(&vnode_free_list, vp, v_freelist);
+ TAILQ_INSERT_TAIL(&vnode_free_list, vp, v_freelist);
+ }
simple_unlock(&vnode_free_list_slock);
}
simple_unlock(&vp->v_interlock);
OpenPOWER on IntegriCloud