xref: /dflybsd-src/lib/libc/sys/mountctl.2 (revision 7cf53efe3ffc99af9e012472e6d1c0e3461c42be)
1c27eed25SSascha Wildner.\"
2c27eed25SSascha Wildner.\" Copyright (c) 2008
3c27eed25SSascha Wildner.\"	The DragonFly Project.  All rights reserved.
4c27eed25SSascha Wildner.\"
5c27eed25SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6c27eed25SSascha Wildner.\" modification, are permitted provided that the following conditions
7c27eed25SSascha Wildner.\" are met:
8c27eed25SSascha Wildner.\"
9c27eed25SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
10c27eed25SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
11c27eed25SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
12c27eed25SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
13c27eed25SSascha Wildner.\"    the documentation and/or other materials provided with the
14c27eed25SSascha Wildner.\"    distribution.
15c27eed25SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
16c27eed25SSascha Wildner.\"    contributors may be used to endorse or promote products derived
17c27eed25SSascha Wildner.\"    from this software without specific, prior written permission.
18c27eed25SSascha Wildner.\"
19c27eed25SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20c27eed25SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21c27eed25SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22c27eed25SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23c27eed25SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24c27eed25SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25c27eed25SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26c27eed25SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27c27eed25SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28c27eed25SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29c27eed25SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c27eed25SSascha Wildner.\" SUCH DAMAGE.
31c27eed25SSascha Wildner.\"
320b3a1c24SAntonio Huete.Dd July 21, 2009
33c27eed25SSascha Wildner.Dt MOUNTCTL 2
34fb5b3747SSascha Wildner.Os
35c27eed25SSascha Wildner.Sh NAME
36c27eed25SSascha Wildner.Nm mountctl
37c27eed25SSascha Wildner.Nd execute a mount control operation
38c27eed25SSascha Wildner.Sh LIBRARY
39c27eed25SSascha Wildner.Lb libc
40c27eed25SSascha Wildner.Sh SYNOPSIS
41a8ac7a04SSascha Wildner.In sys/mountctl.h
42c27eed25SSascha Wildner.Ft int
43c27eed25SSascha Wildner.Fo mountctl
44c27eed25SSascha Wildner.Fa "const char *path"
45c27eed25SSascha Wildner.Fa "int op"
46c27eed25SSascha Wildner.Fa "int fd"
47c27eed25SSascha Wildner.Fa "void *ctl"
48c27eed25SSascha Wildner.Fa "int ctllen"
49c27eed25SSascha Wildner.Fa "void *buf"
50c27eed25SSascha Wildner.Fa "int buflen"
51c27eed25SSascha Wildner.Fc
52c27eed25SSascha Wildner.Sh DESCRIPTION
53c27eed25SSascha WildnerThe
54c27eed25SSascha Wildner.Fn mountctl
55c27eed25SSascha Wildnersystem call executes the mount control operation
56c27eed25SSascha Wildner.Fa op
57c27eed25SSascha Wildneron the mount point
58c27eed25SSascha Wildner.Fa path .
59c27eed25SSascha WildnerAn optional file descriptor
60c27eed25SSascha Wildner.Fa fd
61c27eed25SSascha Wildnercan be passed, or set to -1 if unneeded.
62c27eed25SSascha WildnerThe
63c27eed25SSascha Wildner.Fa ctl
64c27eed25SSascha Wildnerargument is for passing operation specific data and usually points to
65c27eed25SSascha Wildnersome struct (see
66c27eed25SSascha Wildner.Sx CONTROL OPERATIONS
67c27eed25SSascha Wildnerfor further information).
68c27eed25SSascha WildnerThe data's size is specified by
69c27eed25SSascha Wildner.Fa ctllen .
70c27eed25SSascha WildnerThe
71c27eed25SSascha Wildner.Fa buf
72c27eed25SSascha Wildnerand
73c27eed25SSascha Wildner.Fa buflen
74c27eed25SSascha Wildnerarguments are used if the operation needs to return data to the caller
75c27eed25SSascha Wildneror set to
76c27eed25SSascha Wildner.Dv NULL
77c27eed25SSascha Wildnerand 0 if unused.
78c27eed25SSascha Wildner.Sh CONTROL OPERATIONS
79c27eed25SSascha WildnerThe following operations are defined in
80a8ac7a04SSascha Wildner.In sys/mountctl.h :
81c27eed25SSascha Wildner.Bl -tag -width indent
82c27eed25SSascha Wildner.It Dv MOUNTCTL_SET_EXPORT
83c27eed25SSascha WildnerSet export control of a filesystem.
84c27eed25SSascha WildnerThis operation needs a
85c27eed25SSascha Wildner.Vt struct export_args
86c27eed25SSascha Wildnerpassed in
87c27eed25SSascha Wildner.Fa ctl .
88c27eed25SSascha WildnerNote that export control for numerous filesystems may still only be settable
89c27eed25SSascha Wildnerwith
90c27eed25SSascha Wildner.Xr mount 2 .
91c27eed25SSascha WildnerNew software should attempt to use
92c27eed25SSascha Wildner.Fn mountctl
93c27eed25SSascha Wildnerbefore using the old
94c27eed25SSascha Wildner.Xr mount 2
95c27eed25SSascha Wildnermethod.
96c27eed25SSascha Wildner.It Dv MOUNTCTL_INSTALL_VFS_JOURNAL
97c27eed25SSascha WildnerInstall a journal on a mount point.
98c27eed25SSascha WildnerThis operation needs a
99c27eed25SSascha Wildner.Vt struct mountctl_install_journal
100c27eed25SSascha Wildnerpassed in
101c27eed25SSascha Wildner.Fa ctl .
102c27eed25SSascha WildnerThe journal file must be specified via
103c27eed25SSascha Wildner.Fa fd .
104c27eed25SSascha WildnerA mount point may have multiple journals attached to it.
105c27eed25SSascha Wildner.It Dv MOUNTCTL_REMOVE_VFS_JOURNAL
106c27eed25SSascha WildnerDisassociate a journal from a mount point.
107c27eed25SSascha WildnerThis operation needs a
108c27eed25SSascha Wildner.Vt struct mountctl_remove_journal
109c27eed25SSascha Wildnerpassed in
110c27eed25SSascha Wildner.Fa ctl .
111c27eed25SSascha Wildner.It Dv MOUNTCTL_RESTART_VFS_JOURNAL
112c27eed25SSascha WildnerRestart a journal with a new descriptor.
113c27eed25SSascha WildnerThis operation needs a
114c27eed25SSascha Wildner.Vt struct mountctl_restart_journal
115c27eed25SSascha Wildnerpassed in
116c27eed25SSascha Wildner.Fa ctl .
117c27eed25SSascha WildnerThe journal file must be specified via
118c27eed25SSascha Wildner.Fa fd .
119c27eed25SSascha Wildner.It Dv MOUNTCTL_STATUS_VFS_JOURNAL
120c27eed25SSascha WildnerReturn a journal's status.
121c27eed25SSascha WildnerThis operation needs a
122c27eed25SSascha Wildner.Vt struct mountctl_status_journal
123c27eed25SSascha Wildnerpassed in
124c27eed25SSascha Wildner.Fa ctl
125c27eed25SSascha Wildnerand an array of
126c27eed25SSascha Wildner.Vt struct mountctl_journal_ret_status
127c27eed25SSascha Wildnerin
128c27eed25SSascha Wildner.Fa buf .
129*7cf53efeSSascha Wildner.It Dv MOUNTCTL_MOUNTFLAGS
130177403a9SMatthew DillonIt will store a comma separated string buffer in the
131177403a9SMatthew Dillon.Fa buf
132177403a9SMatthew Dillonparameter with the name list of the currently set
133177403a9SMatthew Dillonuser mount flags. The
134177403a9SMatthew Dillon.Fa buf
135177403a9SMatthew Dillonwill be sized at most
136177403a9SMatthew Dillon.Fa buflen
137177403a9SMatthew Dillonbytes.
138c27eed25SSascha Wildner.\" XXX Not yet implemented:
139c27eed25SSascha Wildner.\".It Dv MOUNTCTL_INSTALL_BLK_JOURNAL
140c27eed25SSascha Wildner.\".It Dv MOUNTCTL_REMOVE_BLK_JOURNAL
141c27eed25SSascha Wildner.\".It Dv MOUNTCTL_RESYNC_BLK_JOURNAL
142c27eed25SSascha Wildner.\".It Dv MOUNTCTL_RESYNC_VFS_JOURNAL
143c27eed25SSascha Wildner.\".It Dv MOUNTCTL_STATUS_BLK_JOURNAL
144c27eed25SSascha Wildner.El
145c27eed25SSascha Wildner.Sh RETURN VALUES
1460b3a1c24SAntonio HueteUpon successful completion, the number
1470b3a1c24SAntonio Hueteof copied bytes is returned; otherwise
1480b3a1c24SAntonio Huetethe value -1 is returned and the
1490b3a1c24SAntonio Hueteglobal variable
1500b3a1c24SAntonio Huete.Va errno
1510b3a1c24SAntonio Hueteis set to indicate the error.
152c27eed25SSascha Wildner.Sh ERRORS
153c27eed25SSascha WildnerThe
154c27eed25SSascha Wildner.Fn mountctl
155c27eed25SSascha Wildnerfunction will fail when one of the following occurs:
156c27eed25SSascha Wildner.Bl -tag -width Er
157c27eed25SSascha Wildner.It Bq Er EBADF
158c27eed25SSascha Wildner.Fa \&Fd
159c27eed25SSascha Wildneris not an active descriptor.
160c27eed25SSascha Wildner.It Bq Er EINVAL
161c27eed25SSascha WildnerThe specified
162c27eed25SSascha Wildner.Fa ctllen
163c27eed25SSascha Wildneris not 0-1024,
164c27eed25SSascha Wildner.Fa buflen
165c27eed25SSascha Wildneris not 0-16384, or
166c27eed25SSascha Wildner.Fa path
167c27eed25SSascha Wildneris
168c27eed25SSascha Wildner.Dv NULL .
169c27eed25SSascha Wildner.It Bq Er EPERM
170c27eed25SSascha WildnerThe caller is not the super-user.
171c27eed25SSascha Wildner.El
172c27eed25SSascha Wildner.Sh SEE ALSO
173c27eed25SSascha Wildner.Xr mount 2 ,
174c27eed25SSascha Wildner.Xr mountctl 8
175c27eed25SSascha Wildner.Sh HISTORY
176c27eed25SSascha WildnerThe
177c27eed25SSascha Wildner.Fn mountctl
178c27eed25SSascha Wildnersystem call first appeared in
179c27eed25SSascha Wildner.Dx 1.1 .
180c27eed25SSascha Wildner.Sh AUTHORS
181eb73b953SSascha Wildner.An -nosplit
182c27eed25SSascha WildnerThe
183c27eed25SSascha Wildner.Fn mountctl
184c27eed25SSascha Wildnersystem call was written by
185c27eed25SSascha Wildner.An Matthew Dillon
186c27eed25SSascha Wildnerand this manual page was written by
187c27eed25SSascha Wildner.An Sascha Wildner .
188