xref: /dragonfly/lib/libc/sys/mountctl.2 (revision 19fe1c42)
1.\"
2.\" Copyright (c) 2008
3.\"	The DragonFly Project.  All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\"
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in
13.\"    the documentation and/or other materials provided with the
14.\"    distribution.
15.\" 3. Neither the name of The DragonFly Project nor the names of its
16.\"    contributors may be used to endorse or promote products derived
17.\"    from this software without specific, prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" $DragonFly: src/lib/libc/sys/mountctl.2,v 1.3 2008/02/10 23:35:30 swildner Exp $
33.\"
34.Dd February 8, 2008
35.Os
36.Dt MOUNTCTL 2
37.Sh NAME
38.Nm mountctl
39.Nd execute a mount control operation
40.Sh LIBRARY
41.Lb libc
42.Sh SYNOPSIS
43.In sys/mountctl.h
44.Ft int
45.Fo mountctl
46.Fa "const char *path"
47.Fa "int op"
48.Fa "int fd"
49.Fa "void *ctl"
50.Fa "int ctllen"
51.Fa "void *buf"
52.Fa "int buflen"
53.Fc
54.Sh DESCRIPTION
55The
56.Fn mountctl
57system call executes the mount control operation
58.Fa op
59on the mount point
60.Fa path .
61An optional file descriptor
62.Fa fd
63can be passed, or set to -1 if unneeded.
64The
65.Fa ctl
66argument is for passing operation specific data and usually points to
67some struct (see
68.Sx CONTROL OPERATIONS
69for further information).
70The data's size is specified by
71.Fa ctllen .
72The
73.Fa buf
74and
75.Fa buflen
76arguments are used if the operation needs to return data to the caller
77or set to
78.Dv NULL
79and 0 if unused.
80.Sh CONTROL OPERATIONS
81The following operations are defined in
82.In sys/mountctl.h :
83.Bl -tag -width indent
84.It Dv MOUNTCTL_SET_EXPORT
85Set export control of a filesystem.
86This operation needs a
87.Vt struct export_args
88passed in
89.Fa ctl .
90Note that export control for numerous filesystems may still only be settable
91with
92.Xr mount 2 .
93New software should attempt to use
94.Fn mountctl
95before using the old
96.Xr mount 2
97method.
98.It Dv MOUNTCTL_INSTALL_VFS_JOURNAL
99Install a journal on a mount point.
100This operation needs a
101.Vt struct mountctl_install_journal
102passed in
103.Fa ctl .
104The journal file must be specified via
105.Fa fd .
106A mount point may have multiple journals attached to it.
107.It Dv MOUNTCTL_REMOVE_VFS_JOURNAL
108Disassociate a journal from a mount point.
109This operation needs a
110.Vt struct mountctl_remove_journal
111passed in
112.Fa ctl .
113.It Dv MOUNTCTL_RESTART_VFS_JOURNAL
114Restart a journal with a new descriptor.
115This operation needs a
116.Vt struct mountctl_restart_journal
117passed in
118.Fa ctl .
119The journal file must be specified via
120.Fa fd .
121.It Dv MOUNTCTL_STATUS_VFS_JOURNAL
122Return a journal's status.
123This operation needs a
124.Vt struct mountctl_status_journal
125passed in
126.Fa ctl
127and an array of
128.Vt struct mountctl_journal_ret_status
129in
130.Fa buf .
131.\" XXX Not yet implemented:
132.\".It Dv MOUNTCTL_INSTALL_BLK_JOURNAL
133.\".It Dv MOUNTCTL_REMOVE_BLK_JOURNAL
134.\".It Dv MOUNTCTL_RESYNC_BLK_JOURNAL
135.\".It Dv MOUNTCTL_RESYNC_VFS_JOURNAL
136.\".It Dv MOUNTCTL_STATUS_BLK_JOURNAL
137.El
138.Sh RETURN VALUES
139.Rv -std
140.Sh ERRORS
141The
142.Fn mountctl
143function will fail when one of the following occurs:
144.Bl -tag -width Er
145.It Bq Er EBADF
146.Fa \&Fd
147is not an active descriptor.
148.It Bq Er EINVAL
149The specified
150.Fa ctllen
151is not 0-1024,
152.Fa buflen
153is not 0-16384, or
154.Fa path
155is
156.Dv NULL .
157.It Bq Er EPERM
158The caller is not the super-user.
159.El
160.Sh SEE ALSO
161.Xr mount 2 ,
162.Xr mountctl 8
163.Sh HISTORY
164The
165.Fn mountctl
166system call first appeared in
167.Dx 1.1 .
168.Sh AUTHORS
169.An -nosplit
170The
171.Fn mountctl
172system call was written by
173.An Matthew Dillon
174and this manual page was written by
175.An Sascha Wildner .
176