VFS_MOUNT(9) BSD Kernel Developer's Manual VFS_MOUNT(9)NAME
VFS_MOUNT -- mount a file system
SYNOPSIS
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/vnode.h>
int
VFS_MOUNT(struct mount *mp);
DESCRIPTION
The VFS_MOUNT() macro mounts a file system into the system's namespace or updates the attributes of an already mounted file system.
The arguments it expects are:
mp Structure representing the file system.
The VFS_MOUNT() macro is called both to mount new file systems and to change the attributes of an existing file system. If the MNT_UPDATE
flag is set in mp->mnt_flag then the file system should update its internal state from the value of mp->mnt_flag. This can be used, for
instance, to convert a read-only file system to read-write. It is also used by mountd(8) to update the NFS export information for the file
system.
If the MNT_UPDATE flag is not specified, then this is a newly mounted file system. The file system code should allocate and initialize any
private data needed to represent the file system (it can use the mp->mnt_data field to store this information).
SEE ALSO VFS(9), vnode(9)AUTHORS
This manual page was written by Doug Rabson.
BSD May 23, 2009 BSD
Check Out this Related Man Page
VFS_MOUNT(9) BSD Kernel Developer's Manual VFS_MOUNT(9)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 veri-
fying 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 sys-
tem'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>.
BSD November 26, 2004 BSD