FreeBSD kernel kern code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/fnv_hash.h>
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/linker.h>
#include <sys/mount.h>
#include <sys/proc.h>
#include <sys/sx.h>
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
#include <sys/vnode.h>
#include <sys/malloc.h>
Go to the source code of this file.
Functions | |
__FBSDID ("$FreeBSD$") | |
static int | vfs_register (struct vfsconf *) |
static int | vfs_unregister (struct vfsconf *) |
MALLOC_DEFINE (M_VNODE, "vnodes", "Dynamically allocated vnodes") | |
SX_SYSINIT (vfsconf, &vfsconf_sx, "vfsconf") | |
SYSCTL_INT (_vfs, OID_AUTO, typenumhash, CTLFLAG_RDTUN, &vfs_typenumhash, 0, "Set vfc_typenum using a hash calculation on vfc_name, so that it does not" "change when file systems are loaded in a different order.") | |
static struct vfsconf * | vfs_byname_locked (const char *name) |
struct vfsconf * | vfs_byname (const char *name) |
struct vfsconf * | vfs_byname_kld (const char *fstype, struct thread *td, int *error) |
static int | vfs_mount_sigdefer (struct mount *mp) |
static int | vfs_unmount_sigdefer (struct mount *mp, int mntflags) |
static int | vfs_root_sigdefer (struct mount *mp, int flags, struct vnode **vpp) |
static int | vfs_cachedroot_sigdefer (struct mount *mp, int flags, struct vnode **vpp) |
static int | vfs_quotactl_sigdefer (struct mount *mp, int cmd, uid_t uid, void *arg, bool *mp_busy) |
static int | vfs_statfs_sigdefer (struct mount *mp, struct statfs *sbp) |
static int | vfs_sync_sigdefer (struct mount *mp, int waitfor) |
static int | vfs_vget_sigdefer (struct mount *mp, ino_t ino, int flags, struct vnode **vpp) |
static int | vfs_fhtovp_sigdefer (struct mount *mp, struct fid *fidp, int flags, struct vnode **vpp) |
static int | vfs_checkexp_sigdefer (struct mount *mp, struct sockaddr *nam, uint64_t *exflg, struct ucred **credp, int *numsecflavors, int *secflavors) |
static int | vfs_extattrctl_sigdefer (struct mount *mp, int cmd, struct vnode *filename_vp, int attrnamespace, const char *attrname) |
static int | vfs_sysctl_sigdefer (struct mount *mp, fsctlop_t op, struct sysctl_req *req) |
static void | vfs_susp_clean_sigdefer (struct mount *mp) |
static void | vfs_reclaim_lowervp_sigdefer (struct mount *mp, struct vnode *vp) |
static void | vfs_unlink_lowervp_sigdefer (struct mount *mp, struct vnode *vp) |
static void | vfs_purge_sigdefer (struct mount *mp) |
int | vfs_modevent (module_t mod, int type, void *data) |
Variables | |
int | maxvfsconf = VFS_GENERIC + 1 |
struct vfsconfhead | vfsconf = TAILQ_HEAD_INITIALIZER(vfsconf) |
struct sx | vfsconf_sx |
static int | vfs_typenumhash = 1 |
struct vattr | va_null |
static struct vfsops | vfsops_sigdefer |
__FBSDID | ( | "$FreeBSD$" | ) |
MALLOC_DEFINE | ( | M_VNODE | , |
"vnodes" | , | ||
"Dynamically allocated vnodes" | |||
) |
SX_SYSINIT | ( | vfsconf | , |
& | vfsconf_sx, | ||
"vfsconf" | |||
) |
SYSCTL_INT | ( | _vfs | , |
OID_AUTO | , | ||
typenumhash | , | ||
CTLFLAG_RDTUN | , | ||
& | vfs_typenumhash, | ||
0 | , | ||
"Set vfc_typenum using a hash calculation on | vfc_name, | ||
so that it does not" "change when file systems are loaded in a different order." | |||
) |
struct vfsconf * vfs_byname | ( | const char * | name | ) |
Definition at line 129 of file vfs_init.c.
References name, vfs_byname_locked(), and vfsconf.
Referenced by parse_mount(), vfs_byname_kld(), vfs_domount(), and vfs_mountroot_devfs().
struct vfsconf * vfs_byname_kld | ( | const char * | fstype, |
struct thread * | td, | ||
int * | error | ||
) |
Definition at line 140 of file vfs_init.c.
References kern_kldload(), kern_kldunload(), vfs_byname(), and vfsconf.
Referenced by sys_mount(), and vfs_domount().
|
static |
Definition at line 114 of file vfs_init.c.
References name, vfsconf, and vfsconf_sx.
Referenced by vfs_byname(), vfs_register(), and vfs_unregister().
|
static |
Definition at line 204 of file vfs_init.c.
References flags.
|
static |
Definition at line 273 of file vfs_init.c.
|
static |
Definition at line 286 of file vfs_init.c.
References attrnamespace.
|
static |
Definition at line 261 of file vfs_init.c.
References flags.
int vfs_modevent | ( | module_t | mod, |
int | type, | ||
void * | data | ||
) |
Definition at line 572 of file vfs_init.c.
References data, type, vfs_register(), vfs_unregister(), and vfsconf.
Referenced by mq_modload().
|
static |
Definition at line 169 of file vfs_init.c.
|
static |
Definition at line 346 of file vfs_init.c.
|
static |
Definition at line 215 of file vfs_init.c.
|
static |
Definition at line 322 of file vfs_init.c.
|
static |
Definition at line 377 of file vfs_init.c.
References maxvfsconf, printf(), prison_add_vfs(), sysctl_register_oid(), sysctl_unregister_oid(), sysctl_wlock(), sysctl_wunlock(), va_null, vattr_null(), vfs_byname_locked(), vfs_stdcheckexp(), vfs_stdextattrctl(), vfs_stdfhtovp(), vfs_stdinit(), vfs_stdnosync(), vfs_stdquotactl(), vfs_stdroot(), vfs_stdstatfs(), vfs_stdsysctl(), vfs_stduninit(), vfs_stdvget(), vfs_typenumhash, vfsconf, and vfsops_sigdefer.
Referenced by vfs_modevent().
|
static |
Definition at line 193 of file vfs_init.c.
References flags.
|
static |
Definition at line 228 of file vfs_init.c.
|
static |
Definition at line 310 of file vfs_init.c.
|
static |
Definition at line 239 of file vfs_init.c.
|
static |
Definition at line 299 of file vfs_init.c.
|
static |
Definition at line 334 of file vfs_init.c.
|
static |
Definition at line 182 of file vfs_init.c.
|
static |
Definition at line 530 of file vfs_init.c.
References maxvfsconf, vfs_byname_locked(), and vfsconf.
Referenced by vfs_modevent().
|
static |
Definition at line 250 of file vfs_init.c.
References flags.
int maxvfsconf = VFS_GENERIC + 1 |
Definition at line 64 of file vfs_init.c.
Referenced by vfs_register(), vfs_sysctl(), and vfs_unregister().
struct vattr va_null |
Definition at line 90 of file vfs_init.c.
Referenced by vfs_register().
|
static |
Definition at line 80 of file vfs_init.c.
Referenced by vfs_register().
struct vfsconfhead vfsconf = TAILQ_HEAD_INITIALIZER(vfsconf) |
Definition at line 70 of file vfs_init.c.
Referenced by sys_mount(), sysctl_ovfs_conf(), sysctl_vfs_conflist(), vfs_byname(), vfs_byname_kld(), vfs_byname_locked(), vfs_domount(), vfs_modevent(), vfs_mountroot_devfs(), vfs_register(), vfs_sysctl(), and vfs_unregister().
struct sx vfsconf_sx |
Definition at line 71 of file vfs_init.c.
Referenced by vfs_byname_locked().
|
static |
Definition at line 355 of file vfs_init.c.
Referenced by vfs_register().