mdoc(7) police: markup, grammar and spelling nits.

Reviewed by:	davidc
This commit is contained in:
Ruslan Ermilov 2001-12-14 09:11:13 +00:00
parent f74d799555
commit 1f620c2ead
13 changed files with 190 additions and 132 deletions

View File

@ -34,13 +34,14 @@
.Nd "flush vnodes for a mount point"
.Sh SYNOPSIS
.In sys/param.h
.In sys/mount.h
.In sys/vnode.h
.Ft int
.Fn vflush "struct mount *mp" "int rootrefs" "int flags"
.Sh DESCRIPTION
The
.Fn vflush
function removes any vnodes in the vnode table that belong to the given mount
function removes any vnodes in the vnode table that belong to the given
.Vt mount
structure.
.Pp
Its arguments are:
@ -49,7 +50,7 @@ Its arguments are:
The mount point whose vnodes should be removed.
.It Fa rootrefs
The number of references expected on the root vnode.
.Fn vrele
.Xr vrele 9
will be invoked on the root vnode
.Fa rootrefs
times.
@ -57,20 +58,23 @@ times.
The flags indicating how vnodes should be handled.
.Bl -tag -width ".Dv WRITECLOSE"
.It Dv FORCECLOSE
If set busy vnodes will be forcibly closed.
If set, busy vnodes will be forcibly closed.
.It Dv SKIPSYSTEM
If set vnodes with the VSYSTEM flag set will be skipped.
If set, vnodes with the
.Dv VSYSTEM
flag set will be skipped.
.It Dv WRITECLOSE
If set only regular files currently opened for writing will be removed.
If set, only regular files currently opened for writing will be removed.
.El
.El
.Sh RETURN VALUES
A value of 0 is returned if the flush is successful; otherwise,
.Dv EBUSY
.Er EBUSY
will be returned.
.Sh SEE ALSO
.Xr vgone 9 ,
.Xr vgonel 9
.Xr vgonel 9 ,
.Xr vrele 9
.Sh AUTHORS
This man page was written by
.An Chad David Aq davidc@acns.ab.ca .

View File

@ -31,7 +31,7 @@
.Os
.Sh NAME
.Nm vfs_getnewfsid
.Nd "allocate a new fsid"
.Nd "allocate a new filesystem identifier"
.Sh SYNOPSIS
.In sys/param.h
.In sys/mount.h
@ -43,28 +43,32 @@ The
function allocates a new filesystem identifier for the mount point given.
Filesystems typically call
.Fn vfs_getnewfsid
in their mount routine in order to acquire a unique id within the system
in their mount routine in order to acquire a unique ID within the system
which can later be used to uniquely identify the filesystem via calls such as
.Fn vfs_getvfs .
.Xr vfs_getvfs 9 .
.Pp
The actual fsid is made up of two 32 bit integers, that are stored in the statfs
The actual
.Vt fsid
is made up of two 32 bit integers, that are stored in the
.Vt statfs
structure of
.Fa mp .
The first integer is unique in the set of mounted filesystems, while the second holds
the filesystem type.
The first integer is unique in the set of mounted filesystems,
while the second holds the filesystem type.
.Bd -literal
typedef struct fsid {
int32_t val[2];
} fsid_t;
typedef struct fsid {
int32_t val[2];
} fsid_t;
.Ed
.Sh PSEUDOCODE
.Bd -literal
xxx_mount(struct mount *mp, char *path, caddr_t data, struct nameidata *ndp, struct thread *td)
{
...
vfs_getnewfsid(mp);
...
}
xxx_mount(struct mount *mp, char *path, caddr_t data,
struct nameidata *ndp, struct thread *td)
{
...
vfs_getnewfsid(mp);
...
}
.Ed
.Sh SEE ALSO
.Xr vfs_getvfs 9

View File

@ -31,42 +31,47 @@
.Os
.Sh NAME
.Nm vfs_getvfs
.Nd "returns a mount point given its fsid"
.Nd "returns a mount point given its filesystem identifier"
.Sh SYNOPSIS
.In sys/param.h
.In sys/mount.h
.Ft struct mount *
.Ft "struct mount *"
.Fn vfs_getvfs "fsid_t *fsid"
.Sh DESCRIPTION
The
.Fn vfs_getvfs
function returns the mount point structure for a filesystem given its filesystem
identifier. The filesystem id should have been allocated by calling
.Fn vfs_getnewfsid ;
identifier.
The filesystem ID should have been allocated by calling
.Xr vfs_getnewfsid 9 ;
otherwise, it will not be found.
.Pp
A major user of
.Fn vfs_getvfs
is NFS, which uses the fsid as part of file handles in order to determine the
is NFS, which uses the
.Vt fsid
as part of file handles in order to determine the
filesystem a given RPC is for.
If
.Fn vfs_getvfs
fails to find the mount point related to
.Fa fsid
.Fa fsid ,
the filesystem is considered stale.
.Sh RETURN VALUES
If
.Fa fsid
is found the mount point for the id is returned; otherwise,
is found, the mount point for the ID is returned; otherwise,
.Dv NULL
is returned.
.Sh PSEUDOCODE
.Bd -literal
if ((mp = vfs_getvfs(&fhp->fh_fsid)) == NULL) {
error = ESTALE;
goto out;
}
if ((mp = vfs_getvfs(&fhp->fh_fsid)) == NULL) {
error = ESTALE;
goto out;
}
.Ed
.Sh SEE ALSO
.Xr vfs_getnewfsid 9
.Sh AUTHORS
This man page was written by
.An Chad David Aq davidc@acns.ab.ca .

View File

@ -34,41 +34,43 @@
.Nd "check if the vnode belongs to a mounted filesystem"
.Sh SYNOPSIS
.In sys/param.h
.In sys/vnode.h
.In sys/mount.h
.Ft int
.Fn vfs_mountedon "struct vnode *vp"
.Sh DESCRIPTION
.Fn vfs_mountedon
inspects the mount structure in
inspects the
.Vt mount
structure in
.Fa vp
to determine if it points to a valid mount point.
If the mount is valid the vnode is considered to be busy.
If the mount is valid, the vnode is considered to be busy.
.Pp
A common use of
.Fn vfs_mountedon
it to call it on device vnodes to determine if they are already associated with
is to call it on device vnodes to determine if they are already associated with
a filesystem.
This is done to prevent multiple mounts on the same device.
.Sh RETURN VALUES
.Dv EBUSY
.Er EBUSY
is returned if the vnode has a valid mount point; otherwise, 0 is returned.
.Sh PSEUDOCODE
.Bd -literal
int
ffs_mountfs(devvp, mp, td, malloctype)
register struct vnode *devvp;
struct mount *mp;
struct thread *td;
struct malloc_type *malloctype;
{
...
int
ffs_mountfs(devvp, mp, td, malloctype)
register struct vnode *devvp;
struct mount *mp;
struct thread *td;
struct malloc_type *malloctype;
{
...
error = vfs_mountedon(devvp);
if (error)
return (error);
error = vfs_mountedon(devvp);
if (error)
return (error);
...
}
...
}
.Ed
.Sh AUTHORS
This man page was written by

View File

@ -31,25 +31,34 @@
.Os
.Sh NAME
.Nm vfs_rootmountalloc
.Nd "allocate a root mount structure"
.Nd "allocate a root"
.Vt mount
structure
.Sh SYNOPSIS
.In sys/param.h
.In sys/vnode.h
.In sys/mount.h
.Ft int
.Fn vfs_rootmountalloc "char *fstypename" "char *devname" "struct mount **mpp"
.Sh DESCRIPTION
.Fn vfs_rootmountalloc
allocates a mount structure initialized from the vfsconf type
that matches
allocates a
.Vt mount
structure initialized from the
.Vt vfsconf
type that matches
.Fa fstypename .
.Sh RETURN VALUES
If successful 0 is returned and
If successful, 0 is returned and
.Fa mpp
points to the newly allocated mount structure.
.Dv ENODEV
points to the newly allocated
.Vt mount
structure.
.Er ENODEV
is returned if
.Fa fstypename
is NULL or invalid.
is
.Dv NULL
or invalid.
.Sh SEE ALSO
.Xr vfsconf 9
.Sh AUTHORS

View File

@ -34,24 +34,30 @@
.Nd "generate current timestamp"
.Sh SYNOPSIS
.In sys/param.h
.In sys/vnode.h
.Ft void
.Fn vfs_timespec "struct timespec *tsp"
.Fn vfs_timestamp "struct timespec *tsp"
.Sh DESCRIPTION
The
.Fn vfs_timespec
.Fn vfs_timestamp
function fills in
.Fa tsp
with the current time.
.Pp
The precision is based on the value of the
.Dv vfs.timestamp_precision
.Va vfs.timestamp_precision
sysctl variable:
.Bd -literal
0 = seconds only; nanoseconds are zeroed.
1 = seconds and nanoseconds, accurate within 1/HZ.
2 = seconds and nanoseconds, trucated to microseconds.
>=3 = seconds and nanoseconds, maximum precision.
.Ed
.Pp
.Bl -tag -width ".No \(>=3" -compact
.It 0
seconds only; nanoseconds are zeroed.
.It 1
seconds and nanoseconds, accurate within 1/HZ.
.It 2
seconds and nanoseconds, trucated to microseconds.
.It \(>=3
seconds and nanoseconds, maximum precision.
.El
.Sh AUTHORS
This man page was written by
.An Chad David Aq davidc@acns.ab.ca .

View File

@ -42,34 +42,52 @@
.Ft int
.Fn vfs_modevent "module_t mod" "int type" "void *data"
.Sh DESCRIPTION
Each filesystem type known to the kernel has a vfsconf structure that contains the
Each filesystem type known to the kernel has a
.Vt vfsconf
structure that contains the
information required to create a new mount of that filesystems type.
.Bd -literal
struct vfsconf {
struct vfsops *vfc_vfsops; /* filesystem operations vector */
char vfc_name[MFSNAMELEN]; /* filesystem type name */
int vfc_typenum; /* historic filesystem type number */
int vfc_refcount; /* number mounted of this type */
int vfc_flags; /* permanent flags */
struct vfsconf *vfc_next; /* next in list */
};
struct vfsconf {
struct vfsops *vfc_vfsops; /* filesystem operations vector */
char vfc_name[MFSNAMELEN]; /* filesystem type name */
int vfc_typenum; /* historic filesystem type number */
int vfc_refcount; /* number mounted of this type */
int vfc_flags; /* permanent flags */
struct vfsconf *vfc_next; /* next in list */
};
.Ed
When a new filesystem is mounted
.Fn vfs_mount
does a lookup of the vfcconf structure by its name, and if it is not already registered,
.Pp
When a new filesystem is mounted,
.Xr vfs_mount 9
does a lookup of the
.Vt vfsconf
structure by its name, and if it is not already registered,
attempts to load a kernel module for it.
The filesystem operations for the new mount point are taken from vfc_vfsops, and mnt_vfc
in the mount structure is made to point directly at the vfcconf structure for the
The filesystem operations for the new mount point are taken from
.Va vfc_vfsops ,
and
.Va mnt_vfc
in the
.Vt mount
structure is made to point directly at the
.Vt vfsconf
structure for the
filesystem type.
The filesystem type number is taken from vfs_typenum which was assigned in
The filesystem type number is taken from
.Va vfc_typenum
which was assigned in
.Fn vfs_register ,
and the mount flags are taken from a mask of vfc_flags.
Each time a filesystem of a given type is mounted vfc_refcount is incremented.
and the mount flags are taken from a mask of
.Va vfc_flags .
Each time a filesystem of a given type is mounted,
.Va vfc_refcount
is incremented.
.Pp
.Fn vfs_register
takes a new vfsconf structure and adds it to the list of existing filesystems.
If the type has not already been registered it is initialize by calling the
takes a new
.Vt vfsconf
structure and adds it to the list of existing filesystems.
If the type has not already been registered, it is initialized by calling the
.Fn vfs_init
function in the filesystem operations vector.
.Fn vfs_register
@ -82,49 +100,51 @@ unlinks
from the list of registered filesystem types if there are currently no mounted instances.
If the
.Fn vfs_uninit
function in the filesystems initialization vector is defined it is called.
function in the filesystems initialization vector is defined, it is called.
.Pp
.Fn vfs_modevent
is registered by
.Fn VFS_SET
to handle the loading and unloading of filesystem kernel modules.
In the case of
.Dv MOD_LOAD
.Dv MOD_LOAD ,
.Fn vfs_register
is called.
In the case of
.Dv MOD_UNLOAD
.Dv MOD_UNLOAD ,
.Fn vfs_unregister
is called.
.Sh RETURN VALUES
.Fn vfs_register
returns 0 if successful; otherwise,
.Dv EEXIST
.Er EEXIST
is returned indicating that the filesystem type has already been registered.
.Pp
.Fn vfs_unregister
returns 0 if successful.
If no vfsconf entry can be found matching the name in
If no
.Vt vfsconf
entry can be found matching the name in
.Fa vfc ,
.Dv EINVAL
.Er EINVAL
is returned.
If the reference count of mounted instances of the filesystem type is not zero
.Dv EBUSY
If the reference count of mounted instances of the filesystem type is not zero,
.Er EBUSY
is returned.
If
.Fn vfs_uninit
is called any errors it returns will be returned by
is called, any errors it returns will be returned by
.Fn vfs_unregister .
.Pp
.Fn vfs_modevent
returns the result of the call to
.Fn vfs_register
or
.Fn vfs_unregister
.Fn vfs_unregister ,
whatever the case.
.Sh SEE ALSO
.Xr vfs_mount 9 ,
.Xr vfs_rootmountalloc 9 ,
.Xr vfs_mount ,
.Xr VFS_SET 9
.Sh AUTHORS
This man page was written by

View File

@ -30,8 +30,7 @@
.Dt VGONE 9
.Os
.Sh NAME
.Nm vgone
.Nm vgonel
.Nm vgone , vgonel
.Nd "prepare a vnode for reuse"
.Sh SYNOPSIS
.In sys/param.h
@ -39,7 +38,7 @@
.Ft void
.Fn vgone "struct vnode *vp"
.Ft void
.Fn vgonel "struct vnod *vp" "struct thread *td"
.Fn vgonel "struct vnode *vp" "struct thread *td"
.Sh DESCRIPTION
.Fn vgone
and
@ -48,9 +47,12 @@ prepare a vnode for reuse by another filesystem.
The preparation includes the cleaning of all filesystem specific data and
the removal from its mount point vnode list.
.Pp
If the vnode has a usecount of zero, and its
If the vnode has a
.Va v_usecount
of zero, and its
.Dv VDOOMED
flag is not set it is moved to the head of the free list as in most cases the vnode
flag is not set, it is moved to the head of the free list
as in most cases the vnode
is about to be reused, or its filesystem being unmounted.
.Pp
The difference between

View File

@ -30,9 +30,8 @@
.Dt VHOLD 9
.Os
.Sh NAME
.Nm vhold
.Nm vdrop
.Nd "aquire/release a hold on a vnode"
.Nm vhold , vdrop
.Nd "acquire/release a hold on a vnode"
.Sh SYNOPSIS
.In sys/param.h
.In sys/vnode.h
@ -43,20 +42,24 @@
.Sh DESCRIPTION
The
.Fn vhold
function increments the v_holdcnt of the given vnode.
If the vnode has already been added to the free list and is still referenced
function increments the
.Va v_holdcnt
of the given vnode.
If the vnode has already been added to the free list and is still referenced,
it will be removed.
.Pp
The
.Fn vdrop
function decrements the v_holdcnt of the vnode.
If the holdcount is zero or less prior to calling
.Fn vdrop
function decrements the
.Va v_holdcnt
of the vnode.
If the holdcount is less than or equal zero prior to calling
.Fn vdrop ,
the system will panic.
If the vnode is no longer referenced it will freed.
If the vnode is no longer referenced, it will freed.
.Sh SEE ALSO
.Xr vfree 9 ,
.Xr vbusy 9
.Xr vbusy 9 ,
.Xr vfree 9
.Sh AUTHORS
This man page was written by
.An Chad David Aq davidc@acns.ab.ca .

View File

@ -72,9 +72,8 @@ and
.Fa size .
The byte range is expected to be within a single page, and if
.Fa size
is zero no bits will be set.
is zero, no bits will be set.
.Pp
.\" ------------------- VM_PAGE_SET_VALIDCLEAN -------------------
.Fn vm_page_set_validclean
flags the byte range between
.Fa base
@ -93,7 +92,7 @@ If
.Fa base
is zero and
.Fa size
is one page the modified bit in the page map is cleared; as well,
is one page, the modified bit in the page map is cleared; as well,
the
.Dv PG_NOSYNC
flag is cleared.
@ -121,11 +120,13 @@ As well as clearing the bits within the page, the generation
number within the object holding the page is incremented.
.Pp
.Fn vm_page_zero_invalid
zeros all of the blocks within the page that are currently
flaged as invalid.
zeroes all of the blocks within the page that are currently
flagged as invalid.
If
.Fa setvalid
is TRUE, all of the valid bits within the page are set.
is
.Dv TRUE ,
all of the valid bits within the page are set.
.Pp
In some cases, such as NFS, the valid bits cannot be set
in order to maintain cache consistency.
@ -142,12 +143,14 @@ If
.Fa size
is zero and the page is entirely invalid
.Fn vm_page_is_valid
will return TRUE, in all other cases
a size of zero will return FALSE.
will return
.Dv TRUE ,
in all other cases a size of zero will return
.Dv FALSE .
.Pp
.Fn vm_page_test_dirty
checks if a page has been modified via any of its physical maps,
and if so flags the entire page as dirty.
and if so, flags the entire page as dirty.
.Fn vm_page_dirty
is called to modify the dirty bits.
.Pp

View File

@ -43,7 +43,7 @@ The
.Fn vm_page_dontneed
function advises the VM system that the given page is no longer
required.
If the page is already in the inactive queue or the cache queue this
If the page is already in the inactive queue or in the cache queue, this
function does nothing; otherwise the page is deactivated.
.Pp
Note that

View File

@ -44,10 +44,10 @@ The
function returns the page at
.Fa pindex
from the given object.
If the page exists and is busy
If the page exists and is busy,
.Fn vm_page_grab
will sleep while waiting for it.
If the page does not exists it is allocated.
If the page does not exist, it is allocated.
.Pp
If
.Dv VM_ALLOC_RETRY
@ -58,9 +58,9 @@ or while allocating it,
.Dv NULL
is returned.
.Sh RETURN VALUES
If successful
If successful,
.Fn vm_page_grab
return the page; otherwise,
returns the page; otherwise,
.Dv NULL
is returned.
.Sh SEE ALSO

View File

@ -45,8 +45,8 @@ function flags that the page should no longer be managed by the VM system like
other pages.
The page is removed from any page queue it may be on, and after its
.Dv PG_UNMANAGED
flag is set the page daemon will ignore it (if the page is
currently wired it will not be removed from its current queue).
flag is set, the page daemon will ignore it (if the page is
currently wired, it will not be removed from its current queue).
.Pp
Unmanaged pages are used by
.Dv OBJT_PHYS