Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/mount.h
Show First 20 Lines • Show All 210 Lines • ▼ Show 20 Lines | |||||
* put on a doubly linked list. | * put on a doubly linked list. | ||||
* | * | ||||
* Lock reference: | * Lock reference: | ||||
* l - mnt_listmtx | * l - mnt_listmtx | ||||
* m - mountlist_mtx | * m - mountlist_mtx | ||||
* i - interlock | * i - interlock | ||||
* v - vnode freelist mutex | * v - vnode freelist mutex | ||||
* d - deferred unmount list mutex | * d - deferred unmount list mutex | ||||
* e - mnt_explock | |||||
* | * | ||||
* Unmarked fields are considered stable as long as a ref is held. | * Unmarked fields are considered stable as long as a ref is held. | ||||
* | * | ||||
*/ | */ | ||||
struct mount { | struct mount { | ||||
int mnt_vfs_ops; /* (i) pending vfs ops */ | int mnt_vfs_ops; /* (i) pending vfs ops */ | ||||
int mnt_kern_flag; /* (i) kernel only flags */ | int mnt_kern_flag; /* (i) kernel only flags */ | ||||
uint64_t mnt_flag; /* (i) flags shared with user */ | uint64_t mnt_flag; /* (i) flags shared with user */ | ||||
Show All 13 Lines | #define mnt_startzero mnt_list | ||||
int mnt_writeopcount; /* (i) write syscalls pending */ | int mnt_writeopcount; /* (i) write syscalls pending */ | ||||
struct vfsoptlist *mnt_opt; /* current mount options */ | struct vfsoptlist *mnt_opt; /* current mount options */ | ||||
struct vfsoptlist *mnt_optnew; /* new options passed to fs */ | struct vfsoptlist *mnt_optnew; /* new options passed to fs */ | ||||
struct statfs mnt_stat; /* cache of filesystem stats */ | struct statfs mnt_stat; /* cache of filesystem stats */ | ||||
struct ucred *mnt_cred; /* credentials of mounter */ | struct ucred *mnt_cred; /* credentials of mounter */ | ||||
void * mnt_data; /* private data */ | void * mnt_data; /* private data */ | ||||
time_t mnt_time; /* last time written*/ | time_t mnt_time; /* last time written*/ | ||||
int mnt_iosize_max; /* max size for clusters, etc */ | int mnt_iosize_max; /* max size for clusters, etc */ | ||||
struct netexport *mnt_export; /* export list */ | struct netexport *mnt_export; /* (e) export list */ | ||||
struct label *mnt_label; /* MAC label for the fs */ | struct label *mnt_label; /* MAC label for the fs */ | ||||
u_int mnt_hashseed; /* Random seed for vfs_hash */ | u_int mnt_hashseed; /* Random seed for vfs_hash */ | ||||
int mnt_lockref; /* (i) Lock reference count */ | int mnt_lockref; /* (i) Lock reference count */ | ||||
int mnt_secondary_writes; /* (i) # of secondary writes */ | int mnt_secondary_writes; /* (i) # of secondary writes */ | ||||
int mnt_secondary_accwrites;/* (i) secondary wr. starts */ | int mnt_secondary_accwrites;/* (i) secondary wr. starts */ | ||||
struct thread *mnt_susp_owner; /* (i) thread owning suspension */ | struct thread *mnt_susp_owner; /* (i) thread owning suspension */ | ||||
struct ucred *mnt_exjail; /* (i) jail which did exports */ | |||||
#define mnt_endzero mnt_gjprovider | #define mnt_endzero mnt_gjprovider | ||||
char *mnt_gjprovider; /* gjournal provider name */ | char *mnt_gjprovider; /* gjournal provider name */ | ||||
struct mtx mnt_listmtx; | struct mtx mnt_listmtx; | ||||
struct vnodelst mnt_lazyvnodelist; /* (l) list of lazy vnodes */ | struct vnodelst mnt_lazyvnodelist; /* (l) list of lazy vnodes */ | ||||
int mnt_lazyvnodelistsize; /* (l) # of lazy vnodes */ | int mnt_lazyvnodelistsize; /* (l) # of lazy vnodes */ | ||||
int mnt_upper_pending; /* (i) # of pending ops on mnt_uppers */ | int mnt_upper_pending; /* (i) # of pending ops on mnt_uppers */ | ||||
struct lock mnt_explock; /* vfs_export walkers lock */ | struct lock mnt_explock; /* vfs_export walkers lock */ | ||||
TAILQ_HEAD(, mount_upper_node) mnt_uppers; /* (i) upper mounts over us */ | TAILQ_HEAD(, mount_upper_node) mnt_uppers; /* (i) upper mounts over us */ | ||||
▲ Show 20 Lines • Show All 747 Lines • ▼ Show 20 Lines | |||||
int vfs_setopt_part(struct vfsoptlist *opts, const char *name, void *value, | int vfs_setopt_part(struct vfsoptlist *opts, const char *name, void *value, | ||||
int len); | int len); | ||||
int vfs_setopts(struct vfsoptlist *opts, const char *name, | int vfs_setopts(struct vfsoptlist *opts, const char *name, | ||||
const char *value); | const char *value); | ||||
int vfs_setpublicfs /* set publicly exported fs */ | int vfs_setpublicfs /* set publicly exported fs */ | ||||
(struct mount *, struct netexport *, struct export_args *); | (struct mount *, struct netexport *, struct export_args *); | ||||
void vfs_periodic(struct mount *, int); | void vfs_periodic(struct mount *, int); | ||||
int vfs_busy(struct mount *, int); | int vfs_busy(struct mount *, int); | ||||
void vfs_exjail_delete(struct prison *); | |||||
int vfs_export /* process mount export info */ | int vfs_export /* process mount export info */ | ||||
(struct mount *, struct export_args *); | (struct mount *, struct export_args *, bool); | ||||
void vfs_free_addrlist(struct netexport *); | void vfs_free_addrlist(struct netexport *); | ||||
void vfs_allocate_syncvnode(struct mount *); | void vfs_allocate_syncvnode(struct mount *); | ||||
void vfs_deallocate_syncvnode(struct mount *); | void vfs_deallocate_syncvnode(struct mount *); | ||||
int vfs_donmount(struct thread *td, uint64_t fsflags, | int vfs_donmount(struct thread *td, uint64_t fsflags, | ||||
struct uio *fsoptions); | struct uio *fsoptions); | ||||
void vfs_getnewfsid(struct mount *); | void vfs_getnewfsid(struct mount *); | ||||
struct mount *vfs_getvfs(fsid_t *); /* return vfs given fsid */ | struct mount *vfs_getvfs(fsid_t *); /* return vfs given fsid */ | ||||
struct mount *vfs_busyfs(fsid_t *); | struct mount *vfs_busyfs(fsid_t *); | ||||
▲ Show 20 Lines • Show All 175 Lines • Show Last 20 Lines |