Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Operations vmark(), vunmark() and vismarker() have been repl...
details: https://anonhg.NetBSD.org/src/rev/c6093cd17811
branches: trunk
changeset: 327838:c6093cd17811
user: hannken <hannken%NetBSD.org@localhost>
date: Tue Mar 18 10:21:47 2014 +0000
description:
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
diffstat:
distrib/sets/lists/comp/mi | 11 +++++++++-
share/man/man9/Makefile | 7 ++++-
share/man/man9/vfssubr.9 | 38 +++++++++++++++++++++++++++++++++--
sys/kern/vfs_mount.c | 48 +++++----------------------------------------
sys/sys/param.h | 4 +-
sys/sys/vnode.h | 14 ++----------
sys/ufs/lfs/lfs_segment.c | 6 +++-
7 files changed, 65 insertions(+), 63 deletions(-)
diffs (298 lines):
diff -r 2f3b6e19d2d1 -r c6093cd17811 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Tue Mar 18 08:56:42 2014 +0000
+++ b/distrib/sets/lists/comp/mi Tue Mar 18 10:21:47 2014 +0000
@@ -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
diff -r 2f3b6e19d2d1 -r c6093cd17811 share/man/man9/Makefile
--- a/share/man/man9/Makefile Tue Mar 18 08:56:42 2014 +0000
+++ b/share/man/man9/Makefile Tue Mar 18 10:21:47 2014 +0000
@@ -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 @@
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 \
diff -r 2f3b6e19d2d1 -r c6093cd17811 share/man/man9/vfssubr.9
--- a/share/man/man9/vfssubr.9 Tue Mar 18 08:56:42 2014 +0000
+++ b/share/man/man9/vfssubr.9 Tue Mar 18 10:21:47 2014 +0000
@@ -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 @@
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 .
diff -r 2f3b6e19d2d1 -r c6093cd17811 sys/kern/vfs_mount.c
--- a/sys/kern/vfs_mount.c Tue Mar 18 08:56:42 2014 +0000
+++ b/sys/kern/vfs_mount.c Tue Mar 18 10:21:47 2014 +0000
@@ -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 @@
}
}
-/*
- * 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 @@
vp->v_usecount = 1;
mutex_exit(&mntvnode_lock);
- *vipp = (struct vnode_iterator *)vp;
+ *vip = (struct vnode_iterator *)vp;
}
void
diff -r 2f3b6e19d2d1 -r c6093cd17811 sys/sys/param.h
--- a/sys/sys/param.h Tue Mar 18 08:56:42 2014 +0000
+++ b/sys/sys/param.h Tue Mar 18 10:21:47 2014 +0000
@@ -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__)
diff -r 2f3b6e19d2d1 -r c6093cd17811 sys/sys/vnode.h
--- a/sys/sys/vnode.h Tue Mar 18 08:56:42 2014 +0000
+++ b/sys/sys/vnode.h Tue Mar 18 10:21:47 2014 +0000
@@ -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 @@
#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 @@
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 @@
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) */
diff -r 2f3b6e19d2d1 -r c6093cd17811 sys/ufs/lfs/lfs_segment.c
--- a/sys/ufs/lfs/lfs_segment.c Tue Mar 18 08:56:42 2014 +0000
+++ b/sys/ufs/lfs/lfs_segment.c Tue Mar 18 10:21:47 2014 +0000
@@ -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 { \
Home |
Main Index |
Thread Index |
Old Index