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