diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man9/vfssubr.9 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man9/vfssubr.9')
| -rw-r--r-- | static/netbsd/man9/vfssubr.9 | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/static/netbsd/man9/vfssubr.9 b/static/netbsd/man9/vfssubr.9 new file mode 100644 index 00000000..1026e07a --- /dev/null +++ b/static/netbsd/man9/vfssubr.9 @@ -0,0 +1,254 @@ +.\" $NetBSD: vfssubr.9,v 1.28 2017/07/03 21:28:48 wiz Exp $ +.\" +.\" Copyright (c) 2003, 2005, 2006 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Gregory McGarry. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd April 17, 2017 +.Dt VFSSUBR 9 +.Os +.Sh NAME +.Nm vfssubr , +.Nm vfs_getnewfsid , +.Nm vfs_getvfs , +.Nm vfs_export , +.Nm vfs_showexport , +.Nm vfs_export_lookup , +.Nm vfs_setpublicfs , +.Nm vfs_mountedon , +.Nm vfs_mountroot , +.Nm vfs_unmountall , +.Nm vfs_busy , +.Nm vfs_unbusy , +.Nm vfs_mountalloc , +.Nm vfs_rootmountalloc , +.Nm vfs_shutdown , +.Nm vfs_attach , +.Nm vfs_detach , +.Nm vfs_reinit , +.Nm vfs_getopsbyname , +.Nm vfs_suspend , +.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 +.In sys/mount.h +.In sys/vnode.h +.Ft void +.Fn vfs_getnewfsid "struct mount *mp" +.Ft struct mount * +.Fn vfs_getvfs "fsid_t *fsid" +.Ft int +.Fn vfs_export_lookup "struct mount *mp" "struct netexport *nep" \ +"struct export_args *argp" +.Ft int +.Fn vfs_setpublicfs "struct mount *mp" "struct netexport *nep" \ +"struct export_args *argp" +.Ft int +.Fn vfs_mountedon "struct vnode *vp" +.Ft int +.Fn vfs_mountroot "void" +.Ft void +.Fn vfs_unmountall "struct lwp *l" +.Ft int +.Fn vfs_busy "struct mount *mp" +.Ft void +.Fn vfs_unbusy "struct mount *mp" +.Ft struct mount * +.Fn vfs_mountalloc "struct vfsops *vfs" "struct vnode *vp" +.Ft int +.Fn vfs_rootmountalloc "char *fstypename" "char *devname" \ +"struct mount **mpp" +.Ft void +.Fn vfs_shutdown "void" +.Ft int +.Fn vfs_attach "struct vfsops *vfs" +.Ft int +.Fn vfs_detach "struct vfsops *vfs" +.Ft void +.Fn vfs_reinit "void" +.Ft struct vfsops * +.Fn vfs_getopsbyname "const char *name" +.Ft int +.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 struct vnode * +.Fn vfs_vnode_iterator_next "struct vnode_iterator *vi" "bool (*selector)(void *context, struct vnode *vpp)" "void *context" +.Sh DESCRIPTION +The high-level functions described in this page are the interface to +the kernel file system interface (VFS). +.Sh FUNCTIONS +.Bl -tag -width compact +.It Fn vfs_getnewfsid "mp" +Get a new unique file system id type for the file system specified by +the mount structure +.Fa mp . +The file system id type is stored in +.Em mp->mnt_stat.f_fsidx . +.It Fn vfs_getvfs "fsid" +Lookup a mount point with the file system identifier +.Fa fsid . +.It Fn vfs_export_lookup "mp" "nep" "argp" +Check client permission on the exportable file system specified by the +mount structure +.Fa mp . +The argument +.Fa nam +is the address of the networked client. +This function is used by file system type specific functions to verify +that the client can access the file system. +.It Fn vfs_setpublicfs "mp" "nep" "argp" +Set the publicly exported file system specified by the mount structure +.Fa mp . +.It Fn vfs_mountedon "vp" +Check to see if a file system is mounted on a block device specified +by the vnode +.Fa vp . +.It Fn vfs_mountroot "void" +Mount the root file system. +.It Fn vfs_unmountall "l" +Unmount all file systems. +.It Fn vfs_busy "mp" +Mark the mount point specified by +.Fa mp +as busy and get a reference to it. +This function is used to synchronize access and to delay unmounting. +The caller must hold a pre-existing reference to the mount. +.It Fn vfs_unbusy "mp" +Undo a +.Fn vfs_busy +on the mount point specified by +.Fa mp . +.It Fn vfs_mountalloc "vfsops" "vp" +Allocate and initialise a mount structure, setting +.Em mnt_vnodecovered +to +.Fa vp +and +.Em mnt_op +to +.Fa vfsops . +On success return the address of the mount structure. +Otherwise, return +.Dv NULL . +.It Fn vfs_rootmountalloc "fstypename" "devname" "mpp" +Lookup a file system type specified by the name +.Fa fstypename +and if found allocate and initialise a mount structure for it. +The allocated mount structure is marked as busy and returned in the +address specified by +.Fa mpp . +The device the root file system was mounted from is specified by the +argument +.Fa devname +and is recorded in the new mount structure. +.It Fn vfs_shutdown +Sync and unmount all file systems before shutting down. +Invoked by +.Xr cpu_reboot 9 . +.It Fn vfs_attach "vfs" +Establish file system +.Fa vfs +and initialise it. +.It Fn vfs_detach "vfs" +Remove file system +.Fa vfs +from the kernel. +.It Fn vfs_reinit "void" +Reinitialises all file systems within the kernel through file +system-specific vfs operation (see +.Xr vfsops 9 ) . +.It Fn vfs_getopsbyname "name" +Given a file system name specified by +.Fa name , +look up the vfs operations for that file system (see +.Xr vfsops 9 ) , +or return +.Dv NULL +if file system isn't present in the kernel. +.It Fn vfs_suspend "mp" "nowait" +Request a mounted file system to suspend all operations. +All new operations to the file system are stopped. +After all operations in progress have completed, the +file system is synced to disk and the function returns. +If a file system suspension is currently in progress and +.Fa nowait +is set +.Er EWOULDBLOCK +is returned. +If the operation is successful, zero is returned, otherwise an +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" "selector" "context" +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. +If the iterator is exhausted the function returns +.Dv NULL . +If an optional +.Fa selector +function is provided, then this function is called with the +.Fa context +provided and the candidate vnode to be returned. +If the +.Fa selector +returns +.Dv false , +then the vnode is skipped; if it returns +.Dv true , +the vnode is referenced and then returned. +.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 . +.Sh SEE ALSO +.Xr intro 9 , +.Xr namei 9 , +.Xr vfs 9 , +.Xr vfsops 9 , +.Xr vnode 9 , +.Xr vnodeops 9 |
