Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/mount.h
Show First 20 Lines • Show All 225 Lines • ▼ Show 20 Lines | #define mnt_endzero mnt_gjprovider | ||||
struct lock mnt_explock; /* vfs_export walkers lock */ | struct lock mnt_explock; /* vfs_export walkers lock */ | ||||
TAILQ_ENTRY(mount) mnt_upper_link; /* (m) we in the all uppers */ | TAILQ_ENTRY(mount) mnt_upper_link; /* (m) we in the all uppers */ | ||||
TAILQ_HEAD(, mount) mnt_uppers; /* (m) upper mounts over us*/ | TAILQ_HEAD(, mount) mnt_uppers; /* (m) upper mounts over us*/ | ||||
int mnt_vfs_ops; /* (i) pending vfs ops */ | int mnt_vfs_ops; /* (i) pending vfs ops */ | ||||
int *mnt_thread_in_ops_pcpu; | int *mnt_thread_in_ops_pcpu; | ||||
int *mnt_ref_pcpu; | int *mnt_ref_pcpu; | ||||
int *mnt_lockref_pcpu; | int *mnt_lockref_pcpu; | ||||
int *mnt_writeopcount_pcpu; | int *mnt_writeopcount_pcpu; | ||||
struct vnode *mnt_rootvnode; | |||||
}; | }; | ||||
/* | /* | ||||
* Definitions for MNT_VNODE_FOREACH_ALL. | * Definitions for MNT_VNODE_FOREACH_ALL. | ||||
*/ | */ | ||||
struct vnode *__mnt_vnode_next_all(struct vnode **mvp, struct mount *mp); | struct vnode *__mnt_vnode_next_all(struct vnode **mvp, struct mount *mp); | ||||
struct vnode *__mnt_vnode_first_all(struct vnode **mvp, struct mount *mp); | struct vnode *__mnt_vnode_first_all(struct vnode **mvp, struct mount *mp); | ||||
void __mnt_vnode_markerfree_all(struct vnode **mvp, struct mount *mp); | void __mnt_vnode_markerfree_all(struct vnode **mvp, struct mount *mp); | ||||
▲ Show 20 Lines • Show All 453 Lines • ▼ Show 20 Lines | |||||
typedef void vfs_notify_lowervp_t(struct mount *mp, struct vnode *lowervp); | typedef void vfs_notify_lowervp_t(struct mount *mp, struct vnode *lowervp); | ||||
typedef void vfs_purge_t(struct mount *mp); | typedef void vfs_purge_t(struct mount *mp); | ||||
struct vfsops { | struct vfsops { | ||||
vfs_mount_t *vfs_mount; | vfs_mount_t *vfs_mount; | ||||
vfs_cmount_t *vfs_cmount; | vfs_cmount_t *vfs_cmount; | ||||
vfs_unmount_t *vfs_unmount; | vfs_unmount_t *vfs_unmount; | ||||
vfs_root_t *vfs_root; | vfs_root_t *vfs_root; | ||||
vfs_root_t *vfs_cachedroot; | |||||
sef: Should not this replace one of vfs_spare, for ABI compatibility? | |||||
Done Inline Actionsthis can be done for a merge, not in head mjg: this can be done for a merge, not in head | |||||
Not Done Inline ActionsWhy can it not be done in head? sef: Why can it not be done in head? | |||||
Done Inline Actionsit wastes a spare. they are basically there so that people don't forget to add them when a new stable branch is created mjg: it wastes a spare. they are basically there so that people don't forget to add them when a new… | |||||
vfs_quotactl_t *vfs_quotactl; | vfs_quotactl_t *vfs_quotactl; | ||||
vfs_statfs_t *vfs_statfs; | vfs_statfs_t *vfs_statfs; | ||||
vfs_sync_t *vfs_sync; | vfs_sync_t *vfs_sync; | ||||
vfs_vget_t *vfs_vget; | vfs_vget_t *vfs_vget; | ||||
vfs_fhtovp_t *vfs_fhtovp; | vfs_fhtovp_t *vfs_fhtovp; | ||||
vfs_checkexp_t *vfs_checkexp; | vfs_checkexp_t *vfs_checkexp; | ||||
vfs_init_t *vfs_init; | vfs_init_t *vfs_init; | ||||
vfs_uninit_t *vfs_uninit; | vfs_uninit_t *vfs_uninit; | ||||
Show All 23 Lines | #define VFS_UNMOUNT(MP, FORCE) ({ \ | ||||
_rc; }) | _rc; }) | ||||
#define VFS_ROOT(MP, FLAGS, VPP) ({ \ | #define VFS_ROOT(MP, FLAGS, VPP) ({ \ | ||||
int _rc; \ | int _rc; \ | ||||
\ | \ | ||||
_rc = (*(MP)->mnt_op->vfs_root)(MP, FLAGS, VPP); \ | _rc = (*(MP)->mnt_op->vfs_root)(MP, FLAGS, VPP); \ | ||||
_rc; }) | _rc; }) | ||||
#define VFS_CACHEDROOT(MP, FLAGS, VPP) ({ \ | |||||
int _rc; \ | |||||
\ | |||||
_rc = (*(MP)->mnt_op->vfs_cachedroot)(MP, FLAGS, VPP); \ | |||||
_rc; }) | |||||
#define VFS_QUOTACTL(MP, C, U, A) ({ \ | #define VFS_QUOTACTL(MP, C, U, A) ({ \ | ||||
int _rc; \ | int _rc; \ | ||||
\ | \ | ||||
_rc = (*(MP)->mnt_op->vfs_quotactl)(MP, C, U, A); \ | _rc = (*(MP)->mnt_op->vfs_quotactl)(MP, C, U, A); \ | ||||
_rc; }) | _rc; }) | ||||
#define VFS_STATFS(MP, SBP) ({ \ | #define VFS_STATFS(MP, SBP) ({ \ | ||||
int _rc; \ | int _rc; \ | ||||
▲ Show 20 Lines • Show All 192 Lines • ▼ Show 20 Lines | |||||
vfs_checkexp_t vfs_stdcheckexp; | vfs_checkexp_t vfs_stdcheckexp; | ||||
vfs_init_t vfs_stdinit; | vfs_init_t vfs_stdinit; | ||||
vfs_uninit_t vfs_stduninit; | vfs_uninit_t vfs_stduninit; | ||||
vfs_extattrctl_t vfs_stdextattrctl; | vfs_extattrctl_t vfs_stdextattrctl; | ||||
vfs_sysctl_t vfs_stdsysctl; | vfs_sysctl_t vfs_stdsysctl; | ||||
void syncer_suspend(void); | void syncer_suspend(void); | ||||
void syncer_resume(void); | void syncer_resume(void); | ||||
struct vnode *vfs_cache_root_clear(struct mount *); | |||||
void vfs_op_barrier_wait(struct mount *); | void vfs_op_barrier_wait(struct mount *); | ||||
void vfs_op_enter(struct mount *); | void vfs_op_enter(struct mount *); | ||||
void vfs_op_exit_locked(struct mount *); | void vfs_op_exit_locked(struct mount *); | ||||
void vfs_op_exit(struct mount *); | void vfs_op_exit(struct mount *); | ||||
#ifdef DIAGNOSTIC | #ifdef DIAGNOSTIC | ||||
void vfs_assert_mount_counters(struct mount *); | void vfs_assert_mount_counters(struct mount *); | ||||
▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines |
Should not this replace one of vfs_spare, for ABI compatibility?