Merge from vendor branch CVS:
[dragonfly.git] / sbin / mountctl / mountctl.8
1 .\" Copyright (c) 2003,2004 The DragonFly Project.  All rights reserved.
2 .\" 
3 .\" This code is derived from software contributed to The DragonFly Project
4 .\" by Matthew Dillon <dillon@backplane.com>
5 .\" 
6 .\" 
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 
11 .\" 1. Redistributions of source code must retain the above copyright
12 .\"    notice, this list of conditions and the following disclaimer.
13 .\" 2. Redistributions in binary form must reproduce the above copyright
14 .\"    notice, this list of conditions and the following disclaimer in
15 .\"    the documentation and/or other materials provided with the
16 .\"    distribution.
17 .\" 3. Neither the name of The DragonFly Project nor the names of its
18 .\"    contributors may be used to endorse or promote products derived
19 .\"    from this software without specific, prior written permission.
20 .\" 
21 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 .\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
25 .\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 .\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .\" SUCH DAMAGE.
33 .\"
34 .\" $DragonFly: src/sbin/mountctl/mountctl.8,v 1.3 2005/03/08 20:29:55 swildner Exp $
35 .\"
36 .Dd January 8, 2005
37 .Dt MOUNTCTL 8
38 .Os
39 .Sh NAME
40 .Nm mountctl
41 .Nd control journaling and other features on mounted file systems
42 .Sh SYNOPSIS
43 .Nm
44 .Fl l
45 .Op Ar tag/mountpt | mountpt:tag
46 .Nm
47 .Fl a
48 .Op Fl w Ar output_path
49 .Op Fl x Ar filedesc
50 .Op Fl o Ar option
51 .Op Fl o Ar option ...
52 .Ar mountpt:tag
53 .Nm
54 .Fl d
55 .Op Ar tag/mountpt | mountpt:tag
56 .Nm
57 .Fl m
58 .Op Fl o Ar option
59 .Op Fl o Ar option ...
60 .Op Ar tag/mountpt | mountpt:tag
61 .Nm
62 .Fl FZSCA
63 .Op Ar tag/mountpt | mountpt:tag
64 .Pp
65 .Sh DESCRIPTION
66 The
67 .Nm
68 utility manages journaling and (eventually) other features on a mounted
69 filesystem.
70 Note that a mount point path must begin with '/', and tag names must not
71 begin with '/'.
72 .Pp
73 .Nm
74 .Fl l
75 will list all installed journals in the system or on a particular mount point
76 or tag, including their current state of operation.
77 .Pp
78 .Nm
79 .Fl a
80 will add a new journal to a mount point.  A mount may have any number of
81 journals associated with it.  If no output path is specified the journal
82 will be written to the standard output.  Options may be specified as
83 described in the OPTION KEYWORDS section. 
84 The tag is required and must be unique
85 relative to any given mount, but you can use the same tag on multiple
86 mount points if you wish (and control them all together by referencing that
87 tag).
88 The output path may represent any streamable entity.  You can, for example,
89 output to a pipe into a program which does further buffering or processing
90 of the journal.
91 .Em WARNING
92 A stalled journaling descriptor will stall the filesystem.  Eventually a
93 kernel-implemented swap backing will be available for journals but that is
94 not the case at the moment.
95 .Pp
96 .Nm
97 .Fl d
98 will remove the specified journal(s).  A mount point, a tag, or both may be
99 specified.  This function will operate on all matching journals.
100 .Pp
101 .Nm
102 .Fl m
103 will modify the options associated with an existing journal.  Options are
104 specified in the OPTION KEYWORDS section.
105 .Sh OTHER OPTIONS
106 .Bl -tag -width indent
107 .It Fl F
108 Flush a journal, equivalent to the 'flush' keyword.
109 This option implies
110 .Fl m .
111 .It Fl Z
112 Freeze a journal, equivalent to the 'freeze' keyword.
113 This option implies
114 .Fl m
115 if
116 .Fl a
117 or
118 .Fl d
119 are not specified.
120 .It Fl S
121 Start or restart a journal, equivalent to the 'start' keyword.
122 This option implies
123 .Fl m .
124 .It Fl C
125 Close a journal, equivalent to the 'close' keyword.
126 This option implies
127 .Fl m .
128 .It Fl A
129 Abort a journal, equivalent to the 'abort' keyword.
130 This option implies
131 .Fl m .
132 .It Fl w Ar output_path
133 Change a journal's stream descriptor to the specified path.
134 This option implies
135 .Fl m
136 if
137 .Fl a
138 or
139 .Fl d
140 are not specified.
141 .It Fl x Ar filedesc
142 Change a journal's stream descriptor to the specified file descriptor number.
143 This option implies
144 .Fl m
145 if
146 .Fl a
147 or
148 .Fl d
149 are not specified.
150 .El
151 .Sh OPTION KEYWORDS
152 Options keywords may be comma delimited without whitespace within a single
153 .Fl o
154 or via multiple
155 .Fl o
156 options.  Some keywords require a value which is specified as
157 .Ar keyword=value .
158 Any option may be prefixed with 'no' or 'non' to turn off the option.
159 Some options are one-shot and have no 'no' or 'non' equivalent.
160 .Pp
161 The options are as follows:
162 .Bl -tag -width indent
163 .It Ar reversable
164 Generate a reversable journaling stream.  This allows the target to run
165 the journal backwards as well as forwards to 'undo' operations.  This is the
166 default.
167 .It Ar twoway
168 Indicate that the journaling stream is a two-way stream and that transaction
169 id acknowledgements will be returned.
170 .It Ar memfifo=size[k,m]
171 Specify the size of the in-kernel memory FIFO used to buffer the journaling
172 stream between processes doing filesystem operations and the worker thread
173 writing out the journal.  Since the kernel has limited virtual memory 
174 buffers larger then 4MB are not recommended.
175 .It Ar swapfifo=size[k,m,g]
176 Specify the size of the kernel-managed swap-backed FIFO used to buffer
177 overflows.
178 .It Ar path=filepath
179 Switch the journal's output stream to a new file.  This feature is typically
180 used to restart a dead stream. 
181 Note that the
182 .Fl w
183 option is equivalent to specifying the path option.  Both should not be 
184 specified.
185 .It Ar fd=filedesc
186 Switch the journal's output stream to a file descriptor specified by number.
187 Use file descriptor 1 if you wish to reopen the journal to the current
188 stdout.  This feature is typically used to restart a dead stream (for example
189 if a TCP stream fails).
190 Note that the
191 .Fl w
192 option is equivalent to specifying the path option.  Both should not be 
193 specified.
194 .It Ar freeze
195 Freeze the worker thread.  This may cause the filesystem to stall once
196 the memory fifo has filled up.  A freeze point record will be written to
197 the journal.  If used as part of the creation of a new journal via
198 .Fl a ,
199 this option will prevent any initial output to the journal and a freeze
200 point record will NOT be written.  Again, the filesystem will stall if
201 the memory fifo fills up.
202 .It Ar start
203 Start or restart the worker thread after a freeze.
204 .It Ar close
205 Close the journal.  Any transactions still under way will be allowed to
206 complete, a closing record will be generated, and the journaling descriptor
207 will be closed.  If the connection is two-way the journal will away a final
208 acknowledgement of the closing record before closing the descriptor.
209 .It Ar abort
210 Close the journal.  Any currently buffered data will be aborted.  No close
211 record is written.  The journaling stream is immediately closed.
212 .It Ar flush
213 Flush the journal.  All currently buffered data is flushed.  The command
214 does not return until the write suceeds and, if the connection is two-way,
215 and acknowledgement has been returned for journaled data buffered at the
216 time the flush was issued.
217 .El
218 .Pp
219 .Sh FILES
220 .Sh SEE ALSO
221 .Xr mount 2 ,
222 .Sh BUGS
223 .Sh CAVEATS
224 This utility is currently under construction and not all features have been
225 implemented yet.  In fact, most have not.
226 .Sh HISTORY
227 The
228 .Nm
229 utility first appeared in DragonFly .