NAME
unmount - remove a file system

SYNOPSIS
unmount(name, flags)
char *name;
int flags;

DESCRIPTION
Unmount announces to the system that the directory name is no
longer to refer to the root of a mounted file system. The
directory name reverts to its ordinary interpretation. flags is a
bit mask; two are currently defined in <sys/mount.h>: MNT_FORCE and
MNT_NOFORCE.

RETURN VALUE
Unmount returns 0 if the action occurred; -1 if if the directory is
inaccessible or does not have a mounted file system, or if there
are active files in the mounted file system.

ERRORS
Unmount may fail with one of the following errors:

[EPERM] The caller is not the super-user.

[EINVAL] Name is not the root of a mounted file system.

[EBUSY] A process is holding a reference to a file located
on the file system.

[ENOTDIR] A component of the path prefix is not a directory.

[EPERM] The pathname contains a character with the high-
order bit set.

[ENAMETOOLONG] The pathname was too long.

[ENOENT] name does not exist.

[EACCES] Search permission is denied for a component of the
path prefix.

[EFAULT] name points outside the process’s allocated address
space.

[ELOOP] Too many symbolic links were encountered in
translating the pathname.

[EIO] An I/O error occurred while reading from or writing
to the file system.

SEE ALSO
mount(2), mount(8), umount(8)

BUGS
The error codes are in a state of disarray; too many errors appear
to the caller as one value.