Changeset View
Changeset View
Standalone View
Standalone View
head/share/man/man9/VFS_CHECKEXP.9
Show All 18 Lines | |||||
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
.\" | .\" | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd June 16, 2020 | .Dd June 17, 2020 | ||||
.Dt VFS_CHECKEXP 9 | .Dt VFS_CHECKEXP 9 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm VFS_CHECKEXP | .Nm VFS_CHECKEXP | ||||
.Nd check if a file system is exported to a client | .Nd check if a file system is exported to a client | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
.In sys/param.h | .In sys/param.h | ||||
.In sys/mount.h | .In sys/mount.h | ||||
.Ft int | .Ft int | ||||
.Fo VFS_CHECKEXP | .Fo VFS_CHECKEXP | ||||
.Fa "struct mount *mp" | .Fa "struct mount *mp" | ||||
.Fa "struct sockaddr *nam" | .Fa "struct sockaddr *nam" | ||||
.Fa "uint64_t *exflagsp" | .Fa "uint64_t *exflagsp" | ||||
.Fa "struct ucred **credanonp" | .Fa "struct ucred **credanonp" | ||||
.Fa "int *numsecflavor" | .Fa "int *numsecflavor" | ||||
.Fa "int *secflavors" | .Fa "int *secflavors" | ||||
.Fc | .Fc | ||||
.Sh DESCRIPTION | .Sh DESCRIPTION | ||||
The | The | ||||
.Fn VFS_CHECKEXP | .Fn VFS_CHECKEXP | ||||
macro is used by the NFS server to check if a mount point is exported | macro is used by the NFS server to check if a mount point is exported | ||||
to a client. | to a client. | ||||
.Pp | .Pp | ||||
The arguments it expects are: | The arguments it expects are: | ||||
.Bl -tag -width credanonp | .Bl -tag -width numsecflavors | ||||
.It Fa mp | .It Fa mp | ||||
The mount point to be checked. | The mount point to be checked. | ||||
.It Fa nam | .It Fa nam | ||||
An mbuf containing the network address of the client. | An mbuf containing the network address of the client. | ||||
.It Fa exflagsp | .It Fa exflagsp | ||||
Return parameter for the export flags for this client. | Return parameter for the export flags for this client. | ||||
.It Fa credanonp | .It Fa credanonp | ||||
Return parameter for the anonymous credentials for this client. | Return parameter for the anonymous credentials for this client. | ||||
.It Fa numsecflavors | .It Fa numsecflavors | ||||
Return value for the number of security flavors for this client. | Return value for the number of security flavors for this client. | ||||
.It Fa secflavors | .It Fa secflavors | ||||
Must be an array of size MAXSECFLAVORS, in which the security flavors | Must be an array of size MAXSECFLAVORS, in which the security flavors | ||||
for this client are returned. | for this client are returned. | ||||
.El | .El | ||||
.Pp | .Pp | ||||
The | The | ||||
.Fn VFS_CHECKEXP | .Fn VFS_CHECKEXP | ||||
macro should be called on a file system's mount structure to determine if it | macro should be called on a file system's mount structure to determine if it | ||||
is exported to a client whose address is contained in | is exported to a client whose address is contained in | ||||
.Fa nam . | .Fa nam . | ||||
.Pp | .Pp | ||||
It is generally called before | It is called in the NFS server once a vnode for a file handle has been | ||||
.Xr VFS_FHTOVP 9 | acquired, in order to determine what access the client is allowed on | ||||
to validate that a client has access to the file system. | the file system the vnode resides in. | ||||
For NFSv4, it is also called whenever the lookup operation crosses a | |||||
server file system mount point, to update the access information. | |||||
.Pp | .Pp | ||||
The file system should call | The operation is file system specific, but is normally handled by | ||||
.Xr vfs_export_lookup 9 | the default ``vfs_stdcheckexp''. | ||||
with the address of an appropriate | |||||
.Vt netexport | |||||
structure and the address of the client, | |||||
.Fa nam , | |||||
to verify that the client can access this file system. | |||||
.Sh RETURN VALUES | .Sh RETURN VALUES | ||||
The export flags, anonymous credentials and security flavors specific to the | The export flags, anonymous credentials and security flavors specific to the | ||||
client (returned by | client | ||||
.Xr vfs_export_lookup 9 ) | |||||
will be returned in | will be returned in | ||||
.Fa *exflagsp , | .Fa *exflagsp , | ||||
.Fa *credanonp , | .Fa *credanonp , | ||||
.Fa *numsecflavors | .Fa *numsecflavors | ||||
and | and | ||||
.Fa *secflavors . | .Fa *secflavors . | ||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr VFS 9 , | .Xr VFS 9 , | ||||
.Xr VFS_FHTOVP 9 , | .Xr VFS_FHTOVP 9 , | ||||
.Xr vnode 9 , | .Xr vnode 9 , | ||||
.Xr VOP_VPTOFH 9 | .Xr VOP_VPTOFH 9 | ||||
.Sh AUTHORS | .Sh AUTHORS | ||||
This manual page was written by | This manual page was written by | ||||
.An Alfred Perlstein . | .An Alfred Perlstein . |