summaryrefslogtreecommitdiffstats
path: root/share/man/man9/vfs_mount.9
blob: bb76ef40b2e962d86bee5666c9ecff1a08bc9c4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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(s), this list of conditions and the following disclaimer as
.\"    the first lines of this file unmodified other than the possible
.\"    addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.\"
.Dd July 8, 2001
.Dt VFS_MOUNT 9
.Os
.Sh NAME
.Nm vfs_mount
.Nd "generic filesystem mount function"
.Sh SYNOPSIS
.In sys/param.h
.In sys/mount.h
.Ft int
.Fn vfs_mount "struct proc *p" "char *fstype" "char *fspath" "int fsflags" "void *fsdata"
.Sh DESCRIPTION
The
.Fn vfs_mount
function handles the generic portion of mounting a filesystem,
and calls the filesystem specific mount function after verifying
its parameters and setting up the structures expected by the
underlying mount code.
.Pp
.Fn vfs_mount
is called directly by the
.Xr mount 2
system call.
.Pp
Its arguments are:
.Bl -tag -xwidth ".Fa fsflags"
.It Fa p
The process responsible for this call.
.It Fa fstype
The type of filesystem being mounted.
.It Fa fspath
The path to the mount point of the filesystem.
.It Fa fsflags
Flags controlling the mount.
See
.Xr mount 2
for details.
.Pp
.Dv MNT_EXPORTED , MNT_NOSUID , MNT_NODEV , MNT_UPDATE , MNT_RELOAD ,
.Dv MNT_FORCE , MNT_ASYNC , MNT_SYNCHRONOUS , MNT_UNION , MNT_NOATIME ,
.Dv MNT_SNAPSHOT , MNT_NOCLUSTERR , MNT_NOCLUSTERW , MNT_IGNORE ,
.Dv MNT_UNION , MNT_NOSYMFOLLOW .
.It Fa fsdata
Filesystem specific data structure.
It is in userspace
when passed to
.Fn vfs_mount
and is left untouched when passed to filesystems
.Fn mount .
.El
.Sh RETURN VALUES
A 0 value is returned on success.
.Sh ERRORS
.Bl -tag -width Er
.It Bq Er ENAMETOOLONG
The fs type or the mount point path is too long or any individual
path component is too long.
.It Bq Er EPERM
Permission denied.
There are a number of reason this can occur
ranging from the user not having permission to mount a filesystem
to the securelevel being to high to load the
.Fa fstype
module.
.It Bq Er EINVAL
Invalid operation (ex: trying to update a non mount-point).
.It Bq Er ENOENT
The mount point does not exist (from
.Fn namei ) .
.It Bq Er ELOOP
The mount point is a muddle of links (from
.Fn namei ) .
.It Bq Er EOPNOTSUPP
The operation is not supported (ex: reloading a r/w filesystem).
.It Bq Er EBUSY
The mount point is busy or is not really a mount point (on update).
.It Bq Er ENOTDIR
The mount point is not a directory.
.It Bq Er ENODEV
The kernel linker was unable to load the specified
.Fa fstype
or was unable to find the specified
.Fa fstype
module.
.El
.Pp
Other errors can be returned by the filesystems
.Fn mount
and
you should check the specific filesystem for details.
Also
this call relies on a large number of other kernel services
whose errors it returns so this list my not be exhaustive.
.Sh SEE ALSO
.Xr mount 2 ,
.Xr mount 8 ,
.Xr ffs_mount 9
.Pp
.Va vfs.usermount
.Sh AUTHORS
This man page was written by
.An Chad David .
OpenPOWER on IntegriCloud