VFS_SET9
Set up loadable file system vfsconf
Usage
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/mount.h>
void
VFS_SET(struct vfsops *vfsops, fsname, int flags);
Overview
VFS_SET() creates a vfsconf structure for the loadable module with the given vfsops, fsname, and flags, and declares it by calling DECLARE_MODULE(9) using vfs_modevent() as the event handler.
Possible values for the flags argument are:
- VFCF_STATIC
-
File system should be statically available in the kernel.
- VFCF_NETWORK
-
Network exportable file system.
- VFCF_READONLY
-
Does not support write operations.
- VFCF_SYNTHETIC
-
Pseudo file system, data does not represent on-disk files.
- VFCF_LOOPBACK
-
Loopback file system layer.
- VFCF_UNICODE
-
File names are stored as Unicode.
- VFCF_JAIL
-
Can be mounted from within a jail if allow.mount and allow.mount.<fsname> jail parameters are set.
- VFCF_DELEGADMIN
-
Supports delegated administration if vfs.usermount sysctl is set to 1.
- VFCF_SBDRY
-
When in VFS method, the thread suspension is deferred to the user boundary upon arrival of stop action.
Pseudocode
/*
* Fill in the fields for which we have special methods.
* The others are initially null. This tells vfs to change them to
* pointers to vfs_std* functions during file system registration.
*/
static struct vfsops myfs_vfsops = {
.vfs_mount = myfs_mount,
.vfs_root = myfs_root,
.vfs_statfs = myfs_statfs,
.vfs_unmount = myfs_unmount,
};
VFS_SET(myfs_vfsops, myfs, 0);
Releases
56 releases since FreeBSD 5.0-RELEASE; the text changed 36 times.