1997-03-11 11:29:42 +00:00
|
|
|
.\" Copyright (c) 1995
|
|
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" 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.
|
|
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
|
|
.\"
|
|
|
|
.\" @(#)kvm_getvfsbyname.3 8.3 (Berkeley) 5/4/95
|
1999-08-28 00:22:10 +00:00
|
|
|
.\" $FreeBSD$
|
1997-03-11 11:29:42 +00:00
|
|
|
.\"
|
2007-04-05 21:17:52 +00:00
|
|
|
.Dd April 5, 2007
|
1997-03-11 11:29:42 +00:00
|
|
|
.Dt GETVFSBYNAME 3
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm getvfsbyname
|
2002-12-12 17:26:04 +00:00
|
|
|
.Nd get information about a file system
|
2000-04-21 09:42:15 +00:00
|
|
|
.Sh LIBRARY
|
|
|
|
.Lb libc
|
1997-03-11 11:29:42 +00:00
|
|
|
.Sh SYNOPSIS
|
2001-10-01 16:09:29 +00:00
|
|
|
.In sys/param.h
|
|
|
|
.In sys/mount.h
|
1997-03-11 11:29:42 +00:00
|
|
|
.Ft int
|
- Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
kernel, and rewrite getvfsbyname() to use this instead of the weird
existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
an old userland.
After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility. Please note that these changes don't
break this compatibility either.
When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
|
|
|
.Fn getvfsbyname "const char *name" "struct xvfsconf *vfc"
|
1997-03-11 11:29:42 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Fn getvfsbyname
|
|
|
|
function provides access to information about a
|
2002-12-12 17:26:04 +00:00
|
|
|
file system module that is configured in the kernel.
|
1997-03-11 11:29:42 +00:00
|
|
|
If successful,
|
2002-12-12 17:26:04 +00:00
|
|
|
the requested file system
|
- Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
kernel, and rewrite getvfsbyname() to use this instead of the weird
existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
an old userland.
After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility. Please note that these changes don't
break this compatibility either.
When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
|
|
|
.Fa xvfsconf
|
1997-03-11 11:29:42 +00:00
|
|
|
is returned in the location pointed to by
|
1997-03-12 15:21:57 +00:00
|
|
|
.Fa vfc .
|
1997-03-11 11:29:42 +00:00
|
|
|
The fields in a
|
- Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
kernel, and rewrite getvfsbyname() to use this instead of the weird
existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
an old userland.
After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility. Please note that these changes don't
break this compatibility either.
When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
|
|
|
.Dq Li struct xvfsconf
|
1997-03-11 11:29:42 +00:00
|
|
|
are defined as follows:
|
|
|
|
.Pp
|
|
|
|
.Bl -tag -compact -width vfc_refcount
|
|
|
|
.It vfc_name
|
2002-12-12 17:26:04 +00:00
|
|
|
the name of the file system
|
1997-03-11 11:29:42 +00:00
|
|
|
.It vfc_typenum
|
2002-12-12 17:26:04 +00:00
|
|
|
the file system type number assigned by the kernel
|
1997-03-11 11:29:42 +00:00
|
|
|
.It vfc_refcount
|
2002-12-12 17:26:04 +00:00
|
|
|
the number of active mount points using the file system
|
1997-03-11 11:29:42 +00:00
|
|
|
.It vfc_flags
|
- Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
kernel, and rewrite getvfsbyname() to use this instead of the weird
existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
an old userland.
After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility. Please note that these changes don't
break this compatibility either.
When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
|
|
|
flag bits, as described below
|
|
|
|
.El
|
|
|
|
.Pp
|
|
|
|
The flags are defined as follows:
|
|
|
|
.Pp
|
Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:
- Delegated Administration
Allows regular users to perform ZFS operations, like file system
creation, snapshot creation, etc.
- L2ARC
Level 2 cache for ZFS - allows to use additional disks for cache.
Huge performance improvements mostly for random read of mostly
static content.
- slog
Allow to use additional disks for ZFS Intent Log to speed up
operations like fsync(2).
- vfs.zfs.super_owner
Allows regular users to perform privileged operations on files stored
on ZFS file systems owned by him. Very careful with this one.
- chflags(2)
Not all the flags are supported. This still needs work.
- ZFSBoot
Support to boot off of ZFS pool. Not finished, AFAIK.
Submitted by: dfr
- Snapshot properties
- New failure modes
Before if write requested failed, system paniced. Now one
can select from one of three failure modes:
- panic - panic on write error
- wait - wait for disk to reappear
- continue - serve read requests if possible, block write requests
- Refquota, refreservation properties
Just quota and reservation properties, but don't count space consumed
by children file systems, clones and snapshots.
- Sparse volumes
ZVOLs that don't reserve space in the pool.
- External attributes
Compatible with extattr(2).
- NFSv4-ACLs
Not sure about the status, might not be complete yet.
Submitted by: trasz
- Creation-time properties
- Regression tests for zpool(8) command.
Obtained from: OpenSolaris
2008-11-17 20:49:29 +00:00
|
|
|
.Bl -tag -width VFCF_DELEGADMIN -compact
|
- Introduce a new struct xvfsconf, the userland version of struct vfsconf.
- Make getvfsbyname() take a struct xvfsconf *.
- Convert several consumers of getvfsbyname() to use struct xvfsconf.
- Correct the getvfsbyname.3 manpage.
- Create a new vfs.conflist sysctl to dump all the struct xvfsconf in the
kernel, and rewrite getvfsbyname() to use this instead of the weird
existing API.
- Convert some {set,get,end}vfsent() consumers to use the new vfs.conflist
sysctl.
- Convert a vfsload() call in nfsiod.c to kldload() and remove the useless
vfsisloadable() and endvfsent() calls.
- Add a warning printf() in vfs_sysctl() to tell people they are using
an old userland.
After these changes, it's possible to modify struct vfsconf without
breaking the binary compatibility. Please note that these changes don't
break this compatibility either.
When bp will have updated mount_smbfs(8) with the patch I sent him, there
will be no more consumers of the {set,get,end}vfsent(), vfsisloadable()
and vfsload() API, and I will promptly delete it.
2002-08-10 20:19:04 +00:00
|
|
|
.It Dv VFCF_STATIC
|
|
|
|
statically compiled into kernel
|
|
|
|
.It Dv VFCF_NETWORK
|
|
|
|
may get data over the network
|
|
|
|
.It Dv VFCF_READONLY
|
|
|
|
writes are not implemented
|
|
|
|
.It Dv VFCF_SYNTHETIC
|
|
|
|
data does not represent real files
|
|
|
|
.It Dv VFCF_LOOPBACK
|
|
|
|
aliases some other mounted FS
|
|
|
|
.It Dv VFCF_UNICODE
|
|
|
|
stores file names as Unicode
|
2007-04-05 21:03:05 +00:00
|
|
|
.It Dv VFCF_JAIL
|
|
|
|
can be mounted from within a jail if
|
|
|
|
.Va security.jail.mount_allowed
|
|
|
|
sysctl is set to
|
Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:
- Delegated Administration
Allows regular users to perform ZFS operations, like file system
creation, snapshot creation, etc.
- L2ARC
Level 2 cache for ZFS - allows to use additional disks for cache.
Huge performance improvements mostly for random read of mostly
static content.
- slog
Allow to use additional disks for ZFS Intent Log to speed up
operations like fsync(2).
- vfs.zfs.super_owner
Allows regular users to perform privileged operations on files stored
on ZFS file systems owned by him. Very careful with this one.
- chflags(2)
Not all the flags are supported. This still needs work.
- ZFSBoot
Support to boot off of ZFS pool. Not finished, AFAIK.
Submitted by: dfr
- Snapshot properties
- New failure modes
Before if write requested failed, system paniced. Now one
can select from one of three failure modes:
- panic - panic on write error
- wait - wait for disk to reappear
- continue - serve read requests if possible, block write requests
- Refquota, refreservation properties
Just quota and reservation properties, but don't count space consumed
by children file systems, clones and snapshots.
- Sparse volumes
ZVOLs that don't reserve space in the pool.
- External attributes
Compatible with extattr(2).
- NFSv4-ACLs
Not sure about the status, might not be complete yet.
Submitted by: trasz
- Creation-time properties
- Regression tests for zpool(8) command.
Obtained from: OpenSolaris
2008-11-17 20:49:29 +00:00
|
|
|
.Dv 1
|
|
|
|
.It Dv VFCF_DELEGADMIN
|
|
|
|
supports delegated administration if
|
|
|
|
.Va vfs.usermount
|
|
|
|
sysctl is set to
|
|
|
|
.Dv 1
|
1997-03-11 11:29:42 +00:00
|
|
|
.El
|
|
|
|
.Sh RETURN VALUES
|
2000-11-20 14:11:46 +00:00
|
|
|
.Rv -std getvfsbyname
|
1997-03-11 11:29:42 +00:00
|
|
|
.Sh ERRORS
|
|
|
|
The following errors may be reported:
|
|
|
|
.Bl -tag -width Er
|
|
|
|
.It Bq Er EFAULT
|
|
|
|
The
|
|
|
|
.Fa vfc
|
2002-12-19 09:40:28 +00:00
|
|
|
argument
|
|
|
|
points to an invalid address.
|
1997-03-11 11:29:42 +00:00
|
|
|
.It Bq Er ENOENT
|
|
|
|
The
|
|
|
|
.Fa name
|
2002-12-19 09:40:28 +00:00
|
|
|
argument
|
2002-12-12 17:26:04 +00:00
|
|
|
specifies a file system that is unknown or not configured in the kernel.
|
2000-12-29 14:08:20 +00:00
|
|
|
.El
|
1997-03-11 11:29:42 +00:00
|
|
|
.Sh SEE ALSO
|
2007-04-05 21:03:05 +00:00
|
|
|
.Xr jail 2 ,
|
1997-03-11 11:29:42 +00:00
|
|
|
.Xr mount 2 ,
|
|
|
|
.Xr sysctl 3 ,
|
2007-04-05 21:03:05 +00:00
|
|
|
.Xr jail 8 ,
|
1999-08-14 07:46:50 +00:00
|
|
|
.Xr mount 8 ,
|
|
|
|
.Xr sysctl 8
|
1997-03-11 11:29:42 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
A variant of the
|
|
|
|
.Fn getvfsbyname
|
1997-03-12 15:21:57 +00:00
|
|
|
function first appeared in
|
|
|
|
.Fx 2.0 .
|