man7.org > Linux > man-pages

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | CONFORMING TO | NOTES | SEE ALSO | COLOPHONThe Linux Programming Interface

UMOUNT(2)                 Linux Programmer's Manual                UMOUNT(2)

NAME         top

       umount, umount2 - unmount file system

SYNOPSIS         top

       #include <sys/mount.h>

       int umount(const char *target);

       int umount2(const char *target, int flags);

DESCRIPTION         top

       umount() and umount2() remove the attachment of the (topmost) file
       system mounted on target.

       Appropriate privilege (Linux: the CAP_SYS_ADMIN capability) is
       required to unmount file systems.

       Linux 2.1.116 added the umount2() system call, which, like umount(),
       unmounts a target, but allows additional flags controlling the
       behavior of the operation:

       MNT_FORCE (since Linux 2.1.116)
              Force unmount even if busy.  This can cause data loss.  (Only
              for NFS mounts.)

       MNT_DETACH (since Linux 2.4.11)
              Perform a lazy unmount: make the mount point unavailable for
              new accesses, and actually perform the unmount when the mount
              point ceases to be busy.

       MNT_EXPIRE (since Linux 2.6.8)
              Mark the mount point as expired.  If a mount point is not
              currently in use, then an initial call to umount2() with this
              flag fails with the error EAGAIN, but marks the mount point as
              expired.  The mount point remains expired as long as it isn't
              accessed by any process.  A second umount2() call specifying
              MNT_EXPIRE unmounts an expired mount point.  This flag cannot
              be specified with either MNT_FORCE or MNT_DETACH.

       UMOUNT_NOFOLLOW (since Linux 2.6.34)
              Don't dereference target if it is a symbolic link.  This flag
              allows security problems to be avoided in set-user-ID-root
              programs that allow unprivileged users to unmount file
              systems.

RETURN VALUE         top

       On success, zero is returned.  On error, -1 is returned, and errno is
       set appropriately.

ERRORS         top

       The error values given below result from file-system type independent
       errors.  Each file system type may have its own special errors and
       its own special behavior.  See the Linux kernel source code for
       details.

       EAGAIN A call to umount2() specifying MNT_EXPIRE successfully marked
              an unbusy file system as expired.

       EBUSY  target could not be unmounted because it is busy.

       EFAULT target points outside the user address space.

       EINVAL target is not a mount point.  Or, umount2() was called with
              MNT_EXPIRE and either MNT_DETACH or MNT_FORCE.

       ENAMETOOLONG
              A pathname was longer than MAXPATHLEN.

       ENOENT A pathname was empty or had a nonexistent component.

       ENOMEM The kernel could not allocate a free page to copy filenames or
              data into.

       EPERM  The caller does not have the required privileges.

VERSIONS         top

       MNT_DETACH and MNT_EXPIRE are available in glibc since version 2.11.

CONFORMING TO         top

       These functions are Linux-specific and should not be used in programs
       intended to be portable.

NOTES         top

       The original umount() function was called as umount(device) and would
       return ENOTBLK when called with something other than a block device.
       In Linux 0.98p4 a call umount(dir) was added, in order to support
       anonymous devices.  In Linux 2.3.99-pre7 the call umount(device) was
       removed, leaving only umount(dir) (since now devices can be mounted
       in more than one place, so specifying the device does not suffice).

SEE ALSO         top

       mount(2), path_resolution(7), mount(8), umount(8)

COLOPHON         top

       This page is part of release 3.51 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

Linux                            2010-06-19                        UMOUNT(2)

Copyright and license for this page

HTML rendering created 2013-05-17 by Michael Kerrisk, author of The Linux Programming Interface, maintainer of the Linux man-pages project

Hosting by jambit GmbH

free hit counters