Module Name:    src
Committed By:   hannken
Date:           Tue Mar 18 10:21:48 UTC 2014

Modified Files:
        src/distrib/sets/lists/comp: mi
        src/share/man/man9: Makefile vfssubr.9
        src/sys/kern: vfs_mount.c
        src/sys/sys: param.h vnode.h
        src/sys/ufs/lfs: lfs_segment.c

Log Message:
Operations vmark(), vunmark() and vismarker() have been replaced by
vfs_vnode_iterator_*(), remove them.

Document vfs_vnode_iterator_*().

Make VI_MARKER private to vfs_vnode.c, vfs_mount.c and unfortunately
to ufs/lfs/lfs_segment.c.

Welcome to 6.99.37


To generate a diff of this commit:
cvs rdiff -u -r1.1881 -r1.1882 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.374 -r1.375 src/share/man/man9/Makefile
cvs rdiff -u -r1.22 -r1.23 src/share/man/man9/vfssubr.9
cvs rdiff -u -r1.27 -r1.28 src/sys/kern/vfs_mount.c
cvs rdiff -u -r1.445 -r1.446 src/sys/sys/param.h
cvs rdiff -u -r1.244 -r1.245 src/sys/sys/vnode.h
cvs rdiff -u -r1.234 -r1.235 src/sys/ufs/lfs/lfs_segment.c

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

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1881 src/distrib/sets/lists/comp/mi:1.1882
--- src/distrib/sets/lists/comp/mi:1.1881	Fri Mar 14 01:05:57 2014
+++ src/distrib/sets/lists/comp/mi	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1881 2014/03/14 01:05:57 pooka Exp $
+#	$NetBSD: mi,v 1.1882 2014/03/18 10:21:47 hannken Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -11002,6 +11002,9 @@
 ./usr/share/man/cat9/vfs_sysctl.0		comp-obsolete		obsolete
 ./usr/share/man/cat9/vfs_unbusy.0		comp-sys-catman		.cat
 ./usr/share/man/cat9/vfs_unmountall.0		comp-sys-catman		.cat
+./usr/share/man/cat9/vfs_vnode_iterator_destroy.0	comp-sys-catman		.cat
+./usr/share/man/cat9/vfs_vnode_iterator_init.0	comp-sys-catman		.cat
+./usr/share/man/cat9/vfs_vnode_iterator_next.0	comp-sys-catman		.cat
 ./usr/share/man/cat9/vfs_write_resume.0		comp-obsolete		obsolete
 ./usr/share/man/cat9/vfs_write_suspend.0	comp-obsolete		obsolete
 ./usr/share/man/cat9/vfsops.0			comp-sys-catman		.cat
@@ -17650,6 +17653,9 @@
 ./usr/share/man/html9/vfs_suspend.html		comp-sys-htmlman	html
 ./usr/share/man/html9/vfs_unbusy.html		comp-sys-htmlman	html
 ./usr/share/man/html9/vfs_unmountall.html	comp-sys-htmlman	html
+./usr/share/man/html9/vfs_vnode_iterator_destroy.html	comp-sys-htmlman	html
+./usr/share/man/html9/vfs_vnode_iterator_init.html	comp-sys-htmlman	html
+./usr/share/man/html9/vfs_vnode_iterator_next.html	comp-sys-htmlman	html
 ./usr/share/man/html9/vfsops.html		comp-sys-htmlman	html
 ./usr/share/man/html9/vfssubr.html		comp-sys-htmlman	html
 ./usr/share/man/html9/vget.html			comp-sys-htmlman	html
@@ -24539,6 +24545,9 @@
 ./usr/share/man/man9/vfs_sysctl.9		comp-obsolete		obsolete
 ./usr/share/man/man9/vfs_unbusy.9		comp-sys-man		.man
 ./usr/share/man/man9/vfs_unmountall.9		comp-sys-man		.man
+./usr/share/man/man9/vfs_vnode_iterator_destroy.9	comp-sys-man		.man
+./usr/share/man/man9/vfs_vnode_iterator_init.9	comp-sys-man		.man
+./usr/share/man/man9/vfs_vnode_iterator_next.9	comp-sys-man		.man
 ./usr/share/man/man9/vfs_write_resume.9		comp-obsolete		obsolete
 ./usr/share/man/man9/vfs_write_suspend.9	comp-obsolete		obsolete
 ./usr/share/man/man9/vfsops.9			comp-sys-man		.man

Index: src/share/man/man9/Makefile
diff -u src/share/man/man9/Makefile:1.374 src/share/man/man9/Makefile:1.375
--- src/share/man/man9/Makefile:1.374	Thu Sep 19 17:29:06 2013
+++ src/share/man/man9/Makefile	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-#       $NetBSD: Makefile,v 1.374 2013/09/19 17:29:06 rmind Exp $
+#       $NetBSD: Makefile,v 1.375 2014/03/18 10:21:47 hannken Exp $
 
 #	Makefile for section 9 (kernel function and variable) manual pages.
 
@@ -876,7 +876,10 @@ MLINKS+=vfssubr.9 vfs_getnewfsid.9 \
 	vfssubr.9 vfs_reinit.9 \
 	vfssubr.9 vfs_getopsbyname.9 \
 	vfssubr.9 vfs_resume.9 \
-	vfssubr.9 vfs_suspend.9
+	vfssubr.9 vfs_suspend.9 \
+	vfssubr.9 vfs_vnode_iterator_init.9 \
+	vfssubr.9 vfs_vnode_iterator_destroy.9 \
+	vfssubr.9 vfs_vnode_iterator_next.9
 MLINKS+=vmem.9 vmem_alloc.9 \
 	vmem.9 vmem_create.9 \
 	vmem.9 vmem_destroy.9 \

Index: src/share/man/man9/vfssubr.9
diff -u src/share/man/man9/vfssubr.9:1.22 src/share/man/man9/vfssubr.9:1.23
--- src/share/man/man9/vfssubr.9:1.22	Sat Feb 22 11:08:05 2014
+++ src/share/man/man9/vfssubr.9	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-.\"     $NetBSD: vfssubr.9,v 1.22 2014/02/22 11:08:05 wiz Exp $
+.\"     $NetBSD: vfssubr.9,v 1.23 2014/03/18 10:21:47 hannken Exp $
 .\"
 .\" Copyright (c) 2003, 2005, 2006 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 22, 2014
+.Dd March 18, 2014
 .Dt VFSSUBR 9
 .Os
 .Sh NAME
@@ -51,7 +51,10 @@
 .Nm vfs_reinit ,
 .Nm vfs_getopsbyname ,
 .Nm vfs_suspend ,
-.Nm vfs_resume
+.Nm vfs_resume ,
+.Nm vfs_vnode_iterator_init ,
+.Nm vfs_vnode_iterator_destroy ,
+.Nm vfs_vnode_iterator_next
 .Nd high-level interface to kernel file system interface
 .Sh SYNOPSIS
 .In sys/param.h
@@ -96,6 +99,12 @@
 .Fn vfs_suspend "struct mount *mp" "int nowait"
 .Ft void
 .Fn vfs_resume "struct mount *mp"
+.Ft void
+.Fn vfs_vnode_iterator_init "struct mount *mp" " struct vnode_iterator **vip"
+.Ft void
+.Fn vfs_vnode_iterator_destroy "struct vnode_iterator *vi"
+.Ft bool
+.Fn vfs_vnode_iterator_next "struct vnode_iterator *vi" " struct vnode **vpp"
 .Sh DESCRIPTION
 The high-level functions described in this page are the interface to
 the kernel file system interface (VFS).
@@ -226,9 +235,32 @@ If the operation is successful, zero is 
 appropriate error code is returned.
 .It Fn vfs_resume "mp"
 Request a mounted file system to resume operations.
+.It Fn vfs_vnode_iterator_init "mp" "vip"
+Allocate and initialize an iterator
+.Fa vip
+over all vnodes attached to mount point
+.Fa mp .
+.It Fn vfs_vnode_iterator_destroy "vi"
+Free all resources associated with an iterator
+.Fa vi .
+.It Fn vfs_vnode_iterator_next "vi" "vpp"
+Return the next vnode from iterator
+.Fa vi .
+If the operation is successful the vnode has a reference added to it
+and it is returned in
+.Fa *vpp
+and the function returns
+.Dv true .
+If the iterator is exhausted,
+.Fa *vpp
+is
+.Dv NULL
+and the function returns
+.Dv false .
 .El
 .Sh CODE REFERENCES
 The vfs interface functions are implemented within the files
+.Pa sys/kern/vfs_mount.c ,
 .Pa sys/kern/vfs_subr.c
 and
 .Pa sys/kern/vfs_init.c .

Index: src/sys/kern/vfs_mount.c
diff -u src/sys/kern/vfs_mount.c:1.27 src/sys/kern/vfs_mount.c:1.28
--- src/sys/kern/vfs_mount.c:1.27	Wed Mar  5 09:37:29 2014
+++ src/sys/kern/vfs_mount.c	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_mount.c,v 1.27 2014/03/05 09:37:29 hannken Exp $	*/
+/*	$NetBSD: vfs_mount.c,v 1.28 2014/03/18 10:21:47 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1997-2011 The NetBSD Foundation, Inc.
@@ -67,7 +67,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.27 2014/03/05 09:37:29 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.28 2014/03/18 10:21:47 hannken Exp $");
+
+#define _VFS_VNODE_PRIVATE
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -337,50 +339,12 @@ vfs_unbusy(struct mount *mp, bool keepre
 	}
 }
 
-/*
- * Insert a marker vnode into a mount's vnode list, after the
- * specified vnode.  mntvnode_lock must be held.
- */
-void
-vmark(vnode_t *mvp, vnode_t *vp)
-{
-	struct mount *mp = mvp->v_mount;
-
-	KASSERT(mutex_owned(&mntvnode_lock));
-	KASSERT((mvp->v_iflag & VI_MARKER) != 0);
-	KASSERT(vp->v_mount == mp);
-
-	TAILQ_INSERT_AFTER(&mp->mnt_vnodelist, vp, mvp, v_mntvnodes);
-}
-
-/*
- * Remove a marker vnode from a mount's vnode list, and return
- * a pointer to the next vnode in the list.  mntvnode_lock must
- * be held.
- */
-vnode_t *
-vunmark(vnode_t *mvp)
-{
-	struct mount *mp = mvp->v_mount;
-	vnode_t *vp;
-
-	KASSERT(mutex_owned(&mntvnode_lock));
-	KASSERT((mvp->v_iflag & VI_MARKER) != 0);
-
-	vp = TAILQ_NEXT(mvp, v_mntvnodes);
-	TAILQ_REMOVE(&mp->mnt_vnodelist, mvp, v_mntvnodes); 
-
-	KASSERT(vp == NULL || vp->v_mount == mp);
-
-	return vp;
-}
-
 struct vnode_iterator {
 	struct vnode vi_vnode;
 }; 
 
 void
-vfs_vnode_iterator_init(struct mount *mp, struct vnode_iterator **vipp)
+vfs_vnode_iterator_init(struct mount *mp, struct vnode_iterator **vip)
 {
 	struct vnode *vp;
 
@@ -391,7 +355,7 @@ vfs_vnode_iterator_init(struct mount *mp
 	vp->v_usecount = 1;
 	mutex_exit(&mntvnode_lock);
 
-	*vipp = (struct vnode_iterator *)vp;
+	*vip = (struct vnode_iterator *)vp;
 }
 
 void

Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.445 src/sys/sys/param.h:1.446
--- src/sys/sys/param.h:1.445	Thu Mar  6 19:02:58 2014
+++ src/sys/sys/param.h	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: param.h,v 1.445 2014/03/06 19:02:58 skrll Exp $	*/
+/*	$NetBSD: param.h,v 1.446 2014/03/18 10:21:47 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -63,7 +63,7 @@
  *	2.99.9		(299000900)
  */
 
-#define	__NetBSD_Version__	699003600	/* NetBSD 6.99.36 */
+#define	__NetBSD_Version__	699003700	/* NetBSD 6.99.37 */
 
 #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
     (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)

Index: src/sys/sys/vnode.h
diff -u src/sys/sys/vnode.h:1.244 src/sys/sys/vnode.h:1.245
--- src/sys/sys/vnode.h:1.244	Wed Mar  5 09:37:29 2014
+++ src/sys/sys/vnode.h	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: vnode.h,v 1.244 2014/03/05 09:37:29 hannken Exp $	*/
+/*	$NetBSD: vnode.h,v 1.245 2014/03/18 10:21:47 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -201,7 +201,9 @@ typedef struct vnode vnode_t;
 #define	VI_WRMAPDIRTY	0x00000800	/* might have dirty pages */
 #define	VI_XLOCK	0x00001000	/* vnode is locked to change type */
 #define	VI_ONWORKLST	0x00004000	/* On syncer work-list */
+#ifdef _VFS_VNODE_PRIVATE
 #define	VI_MARKER	0x00008000	/* Dummy marker vnode */
+#endif	/* _VFS_VNODE_PRIVATE */
 #define	VI_LAYER	0x00020000	/* vnode is on a layer filesystem */
 #define	VI_LOCKSHARE	0x00040000	/* v_interlock is shared */
 #define	VI_CLEAN	0x00080000	/* has been reclaimed */
@@ -361,13 +363,6 @@ vhold(struct vnode *vp)
 	mutex_exit(vp->v_interlock);
 }
 
-static __inline bool
-vismarker(struct vnode *vp)
-{
-
-	return (vp->v_iflag & VI_MARKER) != 0;
-}
-
 #define	NULLVP	((struct vnode *)NULL)
 
 static __inline void
@@ -556,9 +551,6 @@ void	vrevoke(struct vnode *);
 struct vnode *
 	vnalloc(struct mount *);
 void	vnfree(struct vnode *);
-void	vmark(struct vnode *, struct vnode *);
-struct vnode *
-	vunmark(struct vnode *);
 void	vremfree(struct vnode *);
 
 /* see vnsubr(9) */

Index: src/sys/ufs/lfs/lfs_segment.c
diff -u src/sys/ufs/lfs/lfs_segment.c:1.234 src/sys/ufs/lfs/lfs_segment.c:1.235
--- src/sys/ufs/lfs/lfs_segment.c:1.234	Mon Mar 17 09:33:20 2014
+++ src/sys/ufs/lfs/lfs_segment.c	Tue Mar 18 10:21:47 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: lfs_segment.c,v 1.234 2014/03/17 09:33:20 hannken Exp $	*/
+/*	$NetBSD: lfs_segment.c,v 1.235 2014/03/18 10:21:47 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -60,7 +60,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.234 2014/03/17 09:33:20 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.235 2014/03/18 10:21:47 hannken Exp $");
+
+#define _VFS_VNODE_PRIVATE	/* XXX: check for VI_MARKER, this has to go */
 
 #ifdef DEBUG
 # define vndebug(vp, str) do {						\

Reply via email to