Module Name:    src
Committed By:   hannken
Date:           Thu Nov  7 09:48:34 UTC 2013

Modified Files:
        src/sys/kern: vfs_vnode.c
        src/sys/sys: vnode.h

Log Message:
Make vclean static (ride 6.99.2).

DOCLOSE is no longer needed -- remove.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.239 -r1.240 src/sys/sys/vnode.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vfs_vnode.c
diff -u src/sys/kern/vfs_vnode.c:1.24 src/sys/kern/vfs_vnode.c:1.25
--- src/sys/kern/vfs_vnode.c:1.24	Sun Nov  3 08:33:00 2013
+++ src/sys/kern/vfs_vnode.c	Thu Nov  7 09:48:34 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_vnode.c,v 1.24 2013/11/03 08:33:00 hannken Exp $	*/
+/*	$NetBSD: vfs_vnode.c,v 1.25 2013/11/07 09:48:34 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1997-2011 The NetBSD Foundation, Inc.
@@ -116,7 +116,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.24 2013/11/03 08:33:00 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.25 2013/11/07 09:48:34 hannken Exp $");
 
 #define _VFS_VNODE_PRIVATE
 
@@ -143,8 +143,6 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,
 #include <uvm/uvm.h>
 #include <uvm/uvm_readahead.h>
 
-#define	DOCLOSE		0x0008		/* vclean: close active files */
-
 /* Flags to vrelel. */
 #define	VRELEL_ASYNC_RELE	0x0001	/* Always defer to vrele thread. */
 
@@ -170,6 +168,7 @@ static int		vrele_pending		__cacheline_a
 static int		vrele_gen		__cacheline_aligned;
 
 static int		cleanvnode(void);
+static void		vclean(vnode_t *);
 static void		vrelel(vnode_t *, int);
 static void		vdrain_thread(void *);
 static void		vrele_thread(void *);
@@ -324,7 +323,7 @@ try_nextlist:
 	 * before doing this.
 	 */
 	vp->v_usecount = 1;
-	vclean(vp, DOCLOSE);
+	vclean(vp);
 	vrelel(vp, 0);
 	fstrans_done(mp);
 
@@ -751,7 +750,7 @@ retry:
 		 * otherwise just free it.
 		 */
 		if (recycle) {
-			vclean(vp, DOCLOSE);
+			vclean(vp);
 		}
 		KASSERT(vp->v_usecount > 0);
 	}
@@ -928,11 +927,11 @@ holdrelel(vnode_t *vp)
  *
  * Must be called with the interlock held, and will return with it held.
  */
-void
-vclean(vnode_t *vp, int flags)
+static void
+vclean(vnode_t *vp)
 {
 	lwp_t *l = curlwp;
-	bool recycle, active, make_anon;
+	bool recycle, active, doclose;
 	int error;
 
 	KASSERT(mutex_owned(vp->v_interlock));
@@ -966,10 +965,8 @@ vclean(vnode_t *vp, int flags)
 	mutex_exit(vp->v_interlock);
 	VOP_LOCK(vp, LK_EXCLUSIVE);
 
-	make_anon = (active && vp->v_type == VBLK &&
+	doclose = ! (active && vp->v_type == VBLK &&
 	    spec_node_getmountedfs(vp) != NULL);
-	if (make_anon)
-		flags &= ~DOCLOSE;
 
 	/*
 	 * Clean out any cached data associated with the vnode.
@@ -977,11 +974,9 @@ vclean(vnode_t *vp, int flags)
 	 * deactivated before being reclaimed. Note that the
 	 * VOP_INACTIVE will unlock the vnode.
 	 */
-	if (flags & DOCLOSE) {
+	if (doclose) {
 		error = vinvalbuf(vp, V_SAVE, NOCRED, l, 0, 0);
 		if (error != 0) {
-			/* XXX, fix vn_start_write's grab of mp and use that. */
-
 			if (wapbl_vphaswapbl(vp))
 				WAPBL_DISCARD(wapbl_vptomp(vp));
 			error = vinvalbuf(vp, 0, NOCRED, l, 0, 0);
@@ -1022,23 +1017,22 @@ vclean(vnode_t *vp, int flags)
 	 * The vnode isn't clean, but still resides on the mount list.  Remove
 	 * it. XXX This is a bit dodgy.
 	 */
-	if (make_anon)
+	if (! doclose)
 		vfs_insmntque(vp, NULL);
 
 	/* Done with purge, notify sleepers of the grim news. */
 	mutex_enter(vp->v_interlock);
-	if (make_anon) {
-		vp->v_op = spec_vnodeop_p;
-	} else {
+	if (doclose) {
 		vp->v_op = dead_vnodeop_p;
+		vp->v_vflag |= VV_LOCKSWORK;
+		vp->v_iflag |= VI_CLEAN;
+	} else {
+		vp->v_op = spec_vnodeop_p;
+		vp->v_vflag &= ~VV_LOCKSWORK;
 	}
 	vp->v_tag = VT_NON;
 	KNOTE(&vp->v_klist, NOTE_REVOKE);
 	vp->v_iflag &= ~VI_XLOCK;
-	vp->v_vflag &= ~VV_LOCKSWORK;
-	if ((flags & DOCLOSE) != 0) {
-		vp->v_iflag |= VI_CLEAN;
-	}
 	cv_broadcast(&vp->v_cv);
 
 	KASSERT((vp->v_iflag & VI_ONWORKLST) == 0);
@@ -1064,7 +1058,7 @@ vrecycle(vnode_t *vp, kmutex_t *inter_lk
 	}
 	vremfree(vp);
 	vp->v_usecount = 1;
-	vclean(vp, DOCLOSE);
+	vclean(vp);
 	vrelel(vp, 0);
 	return 1;
 }
@@ -1088,7 +1082,7 @@ vrevoke(vnode_t *vp)
 		return;
 	} else if (vp->v_type != VBLK && vp->v_type != VCHR) {
 		atomic_inc_uint(&vp->v_usecount);
-		vclean(vp, DOCLOSE);
+		vclean(vp);
 		vrelel(vp, 0);
 		return;
 	} else {
@@ -1099,7 +1093,7 @@ vrevoke(vnode_t *vp)
 
 	while (spec_node_lookup_by_dev(type, dev, &vq) == 0) {
 		mutex_enter(vq->v_interlock);
-		vclean(vq, DOCLOSE);
+		vclean(vq);
 		vrelel(vq, 0);
 	}
 }
@@ -1113,7 +1107,7 @@ vgone(vnode_t *vp)
 {
 
 	mutex_enter(vp->v_interlock);
-	vclean(vp, DOCLOSE);
+	vclean(vp);
 	vrelel(vp, 0);
 }
 

Index: src/sys/sys/vnode.h
diff -u src/sys/sys/vnode.h:1.239 src/sys/sys/vnode.h:1.240
--- src/sys/sys/vnode.h:1.239	Tue Oct 29 09:53:51 2013
+++ src/sys/sys/vnode.h	Thu Nov  7 09:48:34 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnode.h,v 1.239 2013/10/29 09:53:51 hannken Exp $	*/
+/*	$NetBSD: vnode.h,v 1.240 2013/11/07 09:48:34 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -554,7 +554,6 @@ void	vrele_flush(void);
 int	vtruncbuf(struct vnode *, daddr_t, bool, int);
 void	vwakeup(struct buf *);
 void	vwait(struct vnode *, int);
-void	vclean(struct vnode *, int);
 void	vrevoke(struct vnode *);
 struct vnode *
 	vnalloc(struct mount *);

Reply via email to