BSD 4_4_Lite2 release
[unix-history] / usr / src / lib / libc / sys / mount.2
index 6ed7a1f..0d95386 100644 (file)
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1980, 1989, 1993
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\"
-.\"    @(#)mount.2     6.1 (Berkeley) %G%
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.TH MOUNT 2 ""
-.UC 4
-.SH NAME
-mount, umount \- mount or remove file system
-.SH SYNOPSIS
-.nf
-.ft B
-mount(special, name, rwflag)
-char *special, *name;
-int rwflag;
-.PP
-.ft B
-umount(special)
-char *special;
-.fi
-.SH DESCRIPTION
-.I Mount
-announces to the system that a removable file system has
-been mounted on
-the block-structured special file
-.I special;
-from now on, references to file
-.I name
-will refer to
-the root file on the newly mounted file system.
-.I Special
-and
-.I name
-are pointers to null-terminated strings
-containing the appropriate path names.
-.PP
-.I Name
-must exist already. 
-.I Name
-must be a directory.
-Its old contents
-are inaccessible while the file system
-is mounted.
-.PP
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)mount.2    8.3 (Berkeley) 5/24/95
+.\"
+.Dd May 24, 1995
+.Dt MOUNT 2
+.Os BSD 4
+.Sh NAME
+.Nm mount ,
+.Nm unmount
+.Nd mount or dismount a filesystem
+.Sh SYNOPSIS
+.Fd #include <sys/param.h>
+.Fd #include <sys/mount.h>
+.Ft int
+.Fn mount "int type" "const char *dir" "int flags" "caddr_t data"
+.Ft int
+.Fn unmount "const char *dir" "int flags"
+.Sh DESCRIPTION
+The
+.Fn mount
+function grafts
+a filesystem object onto the system file tree
+at the point
+.Ar dir .
+The argument
+.Ar data
+describes the filesystem object to be mounted.
+The argument
+.Ar type
+tells the kernel how to interpret
+.Ar data
+(See
+.Ar type
+below).
+The contents of the filesystem
+become available through the new mount point
+.Ar dir .
+Any files in
+.Ar dir
+at the time
+of a successful mount are swept under the carpet so to speak, and
+are unavailable until the filesystem is unmounted.
+.Pp
+The following
+.Ar flags
+may be specified to
+suppress default semantics which affect filesystem access.
+.Bl -tag -width MNT_SYNCHRONOUS
+.It Dv MNT_RDONLY
+The filesystem should be treated as read-only;
+Even the super-user may not write on it.
+.It Dv MNT_NOEXEC
+Do not allow files to be executed from the filesystem.
+.It Dv MNT_NOSUID
+Do not honor setuid or setgid bits on files when executing them.
+.It Dv MNT_NODEV
+Do not interpret special files on the filesystem.
+.It Dv MNT_SYNCHRONOUS
+All I/O to the filesystem should be done synchronously.
+.El
+.Pp
+The flag
+.Dv MNT_UPDATE
+indicates that the mount command is being applied 
+to an already mounted filesystem.
+This allows the mount flags to be changed without requiring
+that the filesystem be unmounted and remounted.
+Some filesystems may not allow all flags to be changed.
+For example,
+most filesystems will not allow a change from read-write to read-only.
+.Pp
+The
+.Fa type
+argument names the filesystem.
+The types of filesystems known to the system can be obtained with
+.Xr sysctl 8
+by using the command:
+.Bd -literal -offset indent
+sysctl vfs
+.Ed
+.Pp
+.Fa Data
+is a pointer to a structure that contains the type
+specific arguments to mount.
+The format for these argument structures is described in the
+manual page for each filesystem.
+By convention filesystem manual pages are named
+by prefixing ``mount_'' to the name of the filesystem as returned by
+.Xr sysctl 8 .
+Thus the
+.Nm NFS
+filesystem is described by the
+.Xr mount_nfs 8
+manual page.
+.Pp
+The
+.Fn umount
+function call disassociates the filesystem from the specified
+mount point
+.Fa dir .
+.Pp
 The
 The
-.I rwflag
-argument determines whether
-the file system can be written on; if it is 0 writing
-is allowed, if non-zero no writing is done.
-Physically write-protected and magnetic
-tape file systems must be mounted read-only or
-errors will occur when access times are updated,
-whether or not any
-explicit write is attempted.
-.PP
-.I Umount
-announces to the system that the
-.I special
-file is no longer to contain a removable file system.
-The associated file reverts to its ordinary interpretation.
-.SH "RETURN VALUE
-.I Mount
-returns 0 if the action occurred, \-1 if
-.I special
-is inaccessible or not an appropriate file, if
-.I name
-does not exist, if
-.I special
-is already mounted, if
-.I name
-is in use, or if
-there are already too many
-file systems mounted.
-.PP
-.I Umount
-returns 0 if the action occurred; \-1 if
-if the special file is inaccessible or
-does not have a mounted file system,
-or if there are active files in the mounted 
-file system.
-.SH ERRORS
-.I Mount
+.Fa flags
+argument may specify
+.Dv MNT_FORCE
+to specify that the filesystem should be forcibly unmounted even if files are
+still active.
+Active special devices continue to work,
+but any further accesses to any other active files result in errors
+even if the filesystem is later remounted.
+.Sh RETURN VALUES
+The
+.Fn mount
+returns the value 0 if the mount was successful, otherwise -1 is returned
+and the variable
+.Va errno
+is set to indicate the error.
+.Pp
+.Nm Umount
+returns the value 0 if the umount succeeded; otherwise -1 is returned
+and the variable
+.Va errno
+is set to indicate the error.
+.Sh ERRORS
+.Fn Mount
 will fail when one of the following occurs:
 will fail when one of the following occurs:
-.TP 15
-[NODEV]
+.Bl -tag -width [ENOTBLK]
+.It Bq Er EPERM
 The caller is not the super-user.
 The caller is not the super-user.
-.TP 15
-[NODEV]
-.I Special
+.It Bq Er ENAMETOOLONG
+A component of a pathname exceeded 255 characters,
+or the entire length of a path name exceeded 1023 characters.
+.It Bq Er ELOOP
+Too many symbolic links were encountered in translating a pathname.
+.It Bq Er ENOENT
+A component of
+.Fa dir
+does not exist.
+.It Bq Er ENOTDIR
+A component of
+.Ar name
+is not a directory,
+or a path prefix of
+.Ar special
+is not a directory.
+.It Bq Er EINVAL
+A pathname contains a character with the high-order bit set.
+.It Bq Er EBUSY
+Another process currently holds a reference to
+.Fa dir .
+.It Bq Er EFAULT
+.Fa Dir
+points outside the process's allocated address space.
+.El
+.Pp
+The following errors can occur for a
+.Em ufs
+filesystem mount:
+.Bl -tag -width [ENOTBLK]
+.It Bq Er ENODEV
+A component of ufs_args
+.Ar fspec
 does not exist.
 does not exist.
-.TP 15
-[ENOTBLK]
-.I Special
+.It Bq Er ENOTBLK
+.Ar Fspec
 is not a block device.
 is not a block device.
-.TP 15
-[ENXIO]
+.It Bq Er ENXIO
 The major device number of 
 The major device number of 
-.I special
+.Ar fspec
 is out of range (this indicates no device driver exists
 for the associated hardware).
 is out of range (this indicates no device driver exists
 for the associated hardware).
-.TP 15
-[EPERM]
-The pathname contains a character with the high-order bit set.
-.TP 15
-[ENOTDIR]
-A component of the path prefix in
-.I name
-is not a directory.
-.TP 15
-[EROFS]
-.I Name
-resides on a read-only file system.
-.TP 15
-[EBUSY]
-.I Name
-is not a directory, or another process currently
-holds a reference to it.
-.TP 15
-[EBUSY]
+.It Bq Er EBUSY
+.Ar Fspec
+is already mounted.
+.It Bq Er EMFILE
 No space remains in the mount table.
 No space remains in the mount table.
-.TP 15
-[EBUSY]
-The super block for the file system had a bad magic
+.It Bq Er EINVAL
+The super block for the filesystem had a bad magic
 number or an out of range block size.
 number or an out of range block size.
-.TP 15
-[EBUSY]
+.It Bq Er ENOMEM
 Not enough memory was available to read the cylinder
 Not enough memory was available to read the cylinder
-group information for the file system.
-.TP 15
-[EBUSY]
-An i/o error occurred while reading the super block or
+group information for the filesystem.
+.It Bq Er EIO
+An I/O error occurred while reading the super block or
 cylinder group information.
 cylinder group information.
-.PP
-.I Umount
+.It Bq Er EFAULT
+.Ar Fspec
+points outside the process's allocated address space.
+.El
+.Pp
+The following errors can occur for a
+.Em nfs
+filesystem mount:
+.Bl -tag -width [ENOTBLK]
+.It Bq Er ETIMEDOUT
+.Em Nfs
+timed out trying to contact the server.
+.It Bq Er EFAULT
+Some part of the information described by nfs_args
+points outside the process's allocated address space.
+.El
+.Pp
+The following errors can occur for a
+.Em mfs
+filesystem mount:
+.Bl -tag -width [ENOTBLK]
+.It Bq Er EMFILE
+No space remains in the mount table.
+.It Bq Er EINVAL
+The super block for the filesystem had a bad magic
+number or an out of range block size.
+.It Bq Er ENOMEM
+Not enough memory was available to read the cylinder
+group information for the filesystem.
+.It Bq Er EIO
+A paging error occurred while reading the super block or
+cylinder group information.
+.It Bq Er EFAULT
+.Em Name
+points outside the process's allocated address space.
+.El
+.Pp
+.Nm Umount
 may fail with one of the following errors:
 may fail with one of the following errors:
-.TP 15
-[NODEV]
+.Bl -tag -width [ENOTBLK]
+.It Bq Er EPERM
 The caller is not the super-user.
 The caller is not the super-user.
-.TP 15
-[NODEV]
-.I Special
-does not exist.
-.TP 15
-[ENOTBLK]
-.I Special
-is not a block device.
-.TP 15
-[ENXIO]
-The major device number of 
-.I special
-is out of range (this indicates no device driver exists
-for the associated hardware).
-.TP 15
-[EINVAL]
-The requested device is not in the mount table.
-.TP 15
-[EBUSY]
+.It Bq Er ENOTDIR
+A component of the path is not a directory.
+.It Bq Er EINVAL
+The pathname contains a character with the high-order bit set.
+.It Bq Er ENAMETOOLONG
+A component of a pathname exceeded 255 characters,
+or an entire path name exceeded 1023 characters.
+.It Bq Er ELOOP
+Too many symbolic links were encountered in translating the pathname.
+.It Bq Er EINVAL
+The requested directory is not in the mount table.
+.It Bq Er EBUSY
 A process is holding a reference to a file located
 A process is holding a reference to a file located
-on the file system.
-.SH "SEE ALSO"
-mount(8), umount(8)
-.SH BUGS
-The error codes are in a state of disarray; too many errors
-appear to the caller as one value.
+on the filesystem.
+.It Bq Er EIO
+An I/O error occurred while writing cached filesystem information.
+.It Bq Er EFAULT
+.Fa Dir
+points outside the process's allocated address space.
+.El
+.Pp
+A
+.Em ufs
+or
+.Em mfs
+mount can also fail if the maximum number of filesystems are currently
+mounted.
+.Sh SEE ALSO
+.Xr mount 8 ,
+.Xr umount 8 ,
+.Xr sysctl 8
+.Sh BUGS
+Some of the error codes need translation to more obvious messages.
+.Sh HISTORY
+.Fn Mount
+and
+.Fn umount
+function calls appeared in Version 6 AT&T UNIX.