Provided by: freebsd-manpages_8.2-1_all bug

NAME

     vfs_mount — generic file system mount function

SYNOPSIS

     #include <sys/param.h>
     #include <sys/mount.h>

     int
     vfs_mount(struct thread *td, const char *fstype, char *fspath, int fsflags, void *fsdata);

DESCRIPTION

     The vfs_mount() function handles the generic portion of mounting a file system, and calls
     the file system specific mount function after verifying its parameters and setting up the
     structures expected by the underlying mount code.

     vfs_mount() is called directly by the mount(2) system call.

     Its arguments are:

     td       The thread responsible for this call.

     fstype   The type of file system being mounted.

     fspath   The path to the mount point of the file system.

     fsflags  Flags controlling the mount.  See mount(2) for details.

              MNT_EXPORTED, MNT_NOSUID, MNT_UPDATE, MNT_RELOAD, MNT_FORCE, MNT_ASYNC,
              MNT_SYNCHRONOUS, MNT_UNION, MNT_NOATIME, MNT_SNAPSHOT, MNT_NOCLUSTERR,
              MNT_NOCLUSTERW, MNT_IGNORE, MNT_UNION, MNT_NOSYMFOLLOW

     fsdata   File system specific data structure.  It is in userspace when passed to vfs_mount()
              and is left untouched when passed to file system's mount().

RETURN VALUES

     A 0 value is returned on success.

ERRORS

     [ENAMETOOLONG]     The fs type or the mount point path is too long or any individual path
                        component is too long.

     [EPERM]            Permission denied.  There are a number of reason this can occur ranging
                        from the user not having permission to mount a file system to the
                        securelevel being to high to load the fstype module.

     [EINVAL]           Invalid operation (ex: trying to update a non mount-point).

     [ENOENT]           The mount point does not exist (from namei()).

     [ELOOP]            The mount point is a muddle of links (from namei()).

     [EOPNOTSUPP]       The operation is not supported (ex: reloading a r/w file system).

     [EBUSY]            The mount point is busy or is not really a mount point (on update).

     [ENOTDIR]          The mount point is not a directory.

     [ENODEV]           The kernel linker was unable to load the specified fstype or was unable
                        to find the specified fstype module.

     Other errors can be returned by the file system's mount() and you should check the specific
     file system for details.  Also this call relies on a large number of other kernel services
     whose errors it returns so this list may not be exhaustive.

SEE ALSO

     mount(2), mount(8)

     vfs.usermount

AUTHORS

     This manual page was written by Chad David <davidc@acns.ab.ca>.