vfsconf(9) vfs configuration information

SYNOPSIS

In sys/param.h In sys/mount.h Ft int Fn vfs_register struct vfsconf *vfc Ft int Fn vfs_unregister struct vfsconf *vfc Ft int Fn vfs_modevent module_t mod int type void *data

DESCRIPTION

Each file system type known to the kernel has a Vt vfsconf structure that contains the information required to create a new mount of that file systems type.
struct vfsconf {
        struct  vfsops *vfc_vfsops;     /* file system operations vector */
        char    vfc_name[MFSNAMELEN];   /* file system type name */
        int     vfc_typenum;            /* historic file system type number */
        int     vfc_refcount;           /* number mounted of this type */
        int     vfc_flags;              /* permanent flags */
        struct  vfsconf *vfc_next;      /* next in list */
};

When a new file system is mounted, mount(2) does a lookup of the Vt vfsconf structure by its name, and if it is not already registered, attempts to load a kernel module for it. The file system operations for the new mount point are taken from vfc_vfsops and mnt_vfc in the Vt mount structure is made to point directly at the Vt vfsconf structure for the file system type. The file system type number is taken from vfc_typenum which was assigned in Fn vfs_register , and the mount flags are taken from a mask of vfc_flags Each time a file system of a given type is mounted, vfc_refcount is incremented.

Fn vfs_register takes a new Vt vfsconf structure and adds it to the list of existing file systems. If the type has not already been registered, it is initialized by calling the Fn vfs_init function in the file system operations vector. Fn vfs_register also updates the oid's of any sysctl nodes for this file system type to be the same as the newly assigned type number.

Fn vfs_unregister unlinks Fa vfc from the list of registered file system types if there are currently no mounted instances. If the Fn vfs_uninit function in the file systems initialization vector is defined, it is called.

Fn vfs_modevent is registered by Fn VFS_SET to handle the loading and unloading of file system kernel modules. In the case of MOD_LOAD Fn vfs_register is called. In the case of MOD_UNLOAD Fn vfs_unregister is called.

RETURN VALUES

Fn vfs_register returns 0 if successful; otherwise, Er EEXIST is returned indicating that the file system type has already been registered.

Fn vfs_unregister returns 0 if successful. If no Vt vfsconf entry can be found matching the name in Fa vfc , Er EINVAL is returned. If the reference count of mounted instances of the file system type is not zero, Er EBUSY is returned. If Fn vfs_uninit is called, any errors it returns will be returned by Fn vfs_unregister .

Fn vfs_modevent returns the result of the call to Fn vfs_register or Fn vfs_unregister , whatever the case.

AUTHORS

This manual page was written by An Chad David Aq [email protected] .