1 .\" Copyright (c) 2003,2004 The DragonFly Project. All rights reserved.
3 .\" This code is derived from software contributed to The DragonFly Project
4 .\" by Matthew Dillon <dillon@backplane.com>
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
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
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.
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
34 .\" $DragonFly: src/sbin/mountctl/mountctl.8,v 1.14 2008/02/09 00:10:29 swildner Exp $
41 .Nd control journaling and other features on mounted file systems
45 .Op Ar tag/mountpt | mountpt:tag
49 .Op Fl w/W Ar output_path
50 .Op Fl x/X Ar filedesc
52 .Op Fl o Ar option ...
57 .Op Fl w/W Ar output_path
58 .Op Fl x/X Ar filedesc
62 .Op Ar tag/mountpt | mountpt:tag
66 .Op Fl o Ar option ...
67 .Op Ar tag/mountpt | mountpt:tag
70 .Op Ar tag/mountpt | mountpt:tag
74 utility manages journaling and (eventually) other features on a mounted
76 Note that a mount point path must begin with '/', and tag names must not
81 will list all installed journals in the system or on a particular mount point
82 or tag, including their current state of operation.
86 will add a new journal to a mount point. A mount may have any number of
87 journals associated with it. If no output path is specified the journal
88 will be written to the standard output. Options may be specified as
89 described in the OPTION KEYWORDS section.
90 The tag is required and must be unique
91 relative to any given mount, but you can use the same tag on multiple
92 mount points if you wish (and control them all together by referencing that
94 The output path may represent any streamable entity. You can, for example,
95 output to a pipe into a program which does further buffering or processing
98 A stalled journaling descriptor will stall the filesystem. Eventually a
99 kernel-implemented swap backing will be available for journals but that is
100 not the case at the moment.
104 will restart an existing journal, directing it to a new file descriptor.
105 A shutdown is sent to the old journal and the system waits for the return
106 direction (if running full-duplex) to EOF. The new descriptor is then
107 installed and the FIFO index is reset to the last acknowledged transaction.
108 Clients scanning a journal across such a disconnect must check for repeated
109 transaction ids since some overlap between the old and new journal may occur.
113 will remove the specified journal(s). A mount point, a tag, or both may be
114 specified. This function will operate on all matching journals.
118 will modify the options associated with an existing journal. Options are
119 specified in the OPTION KEYWORDS section.
121 .Bl -tag -width indent
123 Specify full-duplex operation. The kernel will not throw away journal
124 data in its internal FIFO until the transaction id is acknowledged. This
125 requires a full-duplex journaling descriptor. Note that shell pipes are
128 Flush a journal, equivalent to the 'flush' keyword.
132 Freeze a journal, equivalent to the 'freeze' keyword.
141 Start a stopped journal, equivalent to the 'start' keyword.
145 Close a journal, equivalent to the 'close' keyword.
149 Abort a journal, equivalent to the 'abort' keyword.
152 .It Fl w Ar output_path
153 Change a journal's stream descriptor to the specified path.
160 are not specified. The target file must not reside on the same
161 filesystem being journaled.
162 .It Fl W Ar output_path
165 but overrides target safety checks.
167 Change a journal's stream descriptor to the specified file descriptor number.
174 are not specified. The target file must not reside on the same
175 filesystem being journaled.
179 but overrides target safety checks.
182 Options keywords may be comma delimited without whitespace within a single
186 options. Some keywords require a value which is specified as
188 Any option may be prefixed with 'no' or 'non' to turn off the option.
189 Some options are one-shot and have no 'no' or 'non' equivalent.
191 The options are as follows:
192 .Bl -tag -width indent
194 Generate a reversable journaling stream. This allows the target to run
195 the journal backwards as well as forwards to 'undo' operations. This is the
198 Indicate that the journaling stream is a two-way stream and that transaction
199 id acknowledgements will be returned. This option is the same as the
202 .It Ar memfifo=size[k,m]
203 Specify the size of the in-kernel memory FIFO used to buffer the journaling
204 stream between processes doing filesystem operations and the worker thread
205 writing out the journal. Since the kernel has limited virtual memory
206 buffers larger then 4MB are not recommended.
207 .It Ar swapfifo=size[k,m,g]
208 Specify the size of the kernel-managed swap-backed FIFO used to buffer
211 Specify where the journal's output stream should be directed.
214 option is equivalent to specifying the path option. Both should not be
217 Specify where the journal's output stream should be directed by handing over
219 Use file descriptor 1 if you wish to output the journal to the current
223 option is equivalent to specifying the path option. Both should not be
226 Freeze the worker thread. This may cause the filesystem to stall once
227 the memory fifo has filled up. A freeze point record will be written to
228 the journal. If used as part of the creation of a new journal via
230 this option will prevent any initial output to the journal and a freeze
231 point record will NOT be written. Again, the filesystem will stall if
232 the memory fifo fills up.
234 Start or restart the worker thread after a freeze.
236 Close the journal. Any transactions still under way will be allowed to
237 complete, a closing record will be generated, and the journaling descriptor
238 will be closed. If the connection is two-way the journal will away a final
239 acknowledgement of the closing record before closing the descriptor.
241 Close the journal. Any currently buffered data will be aborted. No close
242 record is written. The journaling stream is immediately closed.
244 Flush the journal. All currently buffered data is flushed. The command
245 does not return until the write succeeds and, if the connection is two-way,
246 and acknowledgement has been returned for journaled data buffered at the
247 time the flush was issued.
255 This utility is currently under construction and not all features have been
256 implemented yet. In fact, most have not.
260 utility first appeared in