|
FreeBSD kernel kern code
|
#include <sys/cdefs.h>#include "opt_kdtrace.h"#include "opt_ktrace.h"#include <sys/param.h>#include <sys/systm.h>#include <sys/filedesc.h>#include <sys/fnv_hash.h>#include <sys/kernel.h>#include <sys/lock.h>#include <sys/malloc.h>#include <sys/fcntl.h>#include <sys/mount.h>#include <sys/namei.h>#include <sys/proc.h>#include <sys/rwlock.h>#include <sys/sdt.h>#include <sys/syscallsubr.h>#include <sys/sysctl.h>#include <sys/sysproto.h>#include <sys/vnode.h>#include <vm/uma.h>
Go to the source code of this file.
Data Structures | |
| struct | namecache |
| struct | namecache_ts |
Macros | |
| #define | NCF_WHITE 0x01 |
| #define | NCF_ISDOTDOT 0x02 |
| #define | NCF_TS 0x04 |
| #define | NCF_DTS 0x08 |
| #define | NCHHASH(hash) (&nchashtbl[(hash) & nchash]) |
| #define | CACHE_UPGRADE_LOCK() rw_try_upgrade(&cache_lock) |
| #define | CACHE_RLOCK() rw_rlock(&cache_lock) |
| #define | CACHE_RUNLOCK() rw_runlock(&cache_lock) |
| #define | CACHE_WLOCK() rw_wlock(&cache_lock) |
| #define | CACHE_WUNLOCK() rw_wunlock(&cache_lock) |
| #define | CACHE_PATH_CUTOFF 35 |
| #define | STATNODE(mode, name, var, descr) SYSCTL_ULONG(_vfs_cache, OID_AUTO, name, mode, var, 0, descr); |
| #define | STATNODE(name, descr) |
Functions | |
| __FBSDID ("$BSDSUniX$") | |
| SDT_PROVIDER_DECLARE (vfs) | |
| SDT_PROBE_DEFINE3 (vfs, namecache, enter, done,"struct vnode *","char *","struct vnode *") | |
| SDT_PROBE_DEFINE2 (vfs, namecache, enter_negative, done,"struct vnode *","char *") | |
| SDT_PROBE_DEFINE1 (vfs, namecache, fullpath, entry,"struct vnode *") | |
| SDT_PROBE_DEFINE3 (vfs, namecache, fullpath, hit,"struct vnode *","char *","struct vnode *") | |
| SDT_PROBE_DEFINE1 (vfs, namecache, fullpath, miss,"struct vnode *") | |
| SDT_PROBE_DEFINE3 (vfs, namecache, fullpath, return,"int","struct vnode *","char *") | |
| SDT_PROBE_DEFINE3 (vfs, namecache, lookup, hit,"struct vnode *","char *","struct vnode *") | |
| SDT_PROBE_DEFINE2 (vfs, namecache, lookup, hit__negative,"struct vnode *","char *") | |
| SDT_PROBE_DEFINE2 (vfs, namecache, lookup, miss,"struct vnode *","char *") | |
| SDT_PROBE_DEFINE1 (vfs, namecache, purge, done,"struct vnode *") | |
| SDT_PROBE_DEFINE1 (vfs, namecache, purge_negative, done,"struct vnode *") | |
| SDT_PROBE_DEFINE1 (vfs, namecache, purgevfs, done,"struct mount *") | |
| SDT_PROBE_DEFINE3 (vfs, namecache, zap, done,"struct vnode *","char *","struct vnode *") | |
| SDT_PROBE_DEFINE2 (vfs, namecache, zap_negative, done,"struct vnode *","char *") | |
| static | LIST_HEAD (nchashhead, namecache) |
| static void | cache_free (struct namecache *ncp) |
| static char * | nc_get_name (struct namecache *ncp) |
| static void | cache_out_ts (struct namecache *ncp, struct timespec *tsp, int *ticksp) |
| SYSCTL_INT (_debug, OID_AUTO, vfscache, CTLFLAG_RW,&doingcache, 0,"VFS namecache enabled") | |
| SYSCTL_INT (_debug_sizeof, OID_AUTO, namecache, CTLFLAG_RD, SYSCTL_NULL_INT_PTR, sizeof(struct namecache),"sizeof(struct namecache)") | |
| static | SYSCTL_NODE (_vfs, OID_AUTO, cache, CTLFLAG_RW, 0,"Name cache statistics") |
| STATNODE (CTLFLAG_RD, numneg,&numneg,"Number of negative cache entries") | |
| STATNODE (CTLFLAG_RD, numcache,&numcache,"Number of cache entries") | |
| STATNODE (CTLFLAG_RD, numcalls,&numcalls,"Number of cache lookups") | |
| STATNODE (CTLFLAG_RD, dothits,&dothits,"Number of '.' hits") | |
| STATNODE (CTLFLAG_RD, dotdothits,&dotdothits,"Number of '..' hits") | |
| STATNODE (CTLFLAG_RD, numchecks,&numchecks,"Number of checks in lookup") | |
| STATNODE (CTLFLAG_RD, nummiss,&nummiss,"Number of cache misses") | |
| STATNODE (CTLFLAG_RD, nummisszap,&nummisszap,"Number of cache misses we do not want to cache") | |
| STATNODE (CTLFLAG_RD, numposzaps,&numposzaps,"Number of cache hits (positive) we do not want to cache") | |
| STATNODE (CTLFLAG_RD, numposhits,&numposhits,"Number of cache hits (positive)") | |
| STATNODE (CTLFLAG_RD, numnegzaps,&numnegzaps,"Number of cache hits (negative) we do not want to cache") | |
| STATNODE (CTLFLAG_RD, numneghits,&numneghits,"Number of cache hits (negative)") | |
| STATNODE (CTLFLAG_RD, numupgrades,&numupgrades,"Number of updates of the cache after lookup (write lock + retry)") | |
| SYSCTL_OPAQUE (_vfs_cache, OID_AUTO, nchstats, CTLFLAG_RD|CTLFLAG_MPSAFE,&nchstats, sizeof(nchstats),"LU","VFS cache effectiveness statistics") | |
| static void | cache_zap (struct namecache *ncp) |
| static int | vn_vptocnp_locked (struct vnode **vp, struct ucred *cred, char *buf, u_int *buflen) |
| static int | vn_fullpath1 (struct thread *td, struct vnode *vp, struct vnode *rdir, char *buf, char **retbuf, u_int buflen) |
| static | MALLOC_DEFINE (M_VFSCACHE,"vfscache","VFS name cache entries") |
| int | cache_lookup_times (struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, struct timespec *tsp, int *ticksp) |
| void | cache_enter_time (struct vnode *dvp, struct vnode *vp, struct componentname *cnp, struct timespec *tsp, struct timespec *dtsp) |
| static void | nchinit (void *dummy __unused) |
| SYSINIT (vfs, SI_SUB_VFS, SI_ORDER_SECOND, nchinit, NULL) | |
| void | cache_purge (struct vnode *vp) |
| void | cache_purge_negative (struct vnode *vp) |
| void | cache_purgevfs (struct mount *mp) |
| int | vfs_cache_lookup (struct vop_lookup_args *ap) |
| SYSCTL_INT (_debug, OID_AUTO, disablecwd, CTLFLAG_RW,&disablecwd, 0,"Disable the getcwd syscall") | |
| int | sys___getcwd (struct thread *td, struct __getcwd_args *uap) |
| int | kern___getcwd (struct thread *td, char *buf, enum uio_seg bufseg, u_int buflen) |
| SYSCTL_INT (_debug, OID_AUTO, disablefullpath, CTLFLAG_RW,&disablefullpath, 0,"Disable the vn_fullpath function") | |
| STATNODE (numfullpathcalls,"Number of fullpath search calls") | |
| STATNODE (numfullpathfail1,"Number of fullpath search errors (ENOTDIR)") | |
| STATNODE (numfullpathfail2,"Number of fullpath search errors (VOP_VPTOCNP failures)") | |
| STATNODE (numfullpathfail4,"Number of fullpath search errors (ENOMEM)") | |
| STATNODE (numfullpathfound,"Number of successful fullpath calls") | |
| int | vn_fullpath (struct thread *td, struct vnode *vn, char **retbuf, char **freebuf) |
| int | vn_fullpath_global (struct thread *td, struct vnode *vn, char **retbuf, char **freebuf) |
| int | vn_vptocnp (struct vnode **vp, struct ucred *cred, char *buf, u_int *buflen) |
| struct vnode * | vn_dir_dd_ino (struct vnode *vp) |
| int | vn_commname (struct vnode *vp, char *buf, u_int buflen) |
| void | cache_enter (struct vnode *dvp, struct vnode *vp, struct componentname *cnp) |
| int | cache_lookup (struct vnode *dvp, struct vnode **vpp, struct componentname *cnp) |
| int | vn_path_to_global_path (struct thread *td, struct vnode *vp, char *path, u_int pathlen) |
Variables | |
| static int | doingcache = 1 |
| static u_long | numcalls |
| static u_long | dothits |
| static u_long | dotdothits |
| static u_long | numchecks |
| static u_long | nummiss |
| static u_long | nummisszap |
| static u_long | numposzaps |
| static u_long | numposhits |
| static u_long | numnegzaps |
| static u_long | numneghits |
| static u_long | numupgrades |
| static int | disablecwd |
| static int | disablefullpath |
| #define CACHE_PATH_CUTOFF 35 |
Referenced by cache_free(), LIST_HEAD(), and nchinit().
| #define CACHE_RLOCK | ( | ) | rw_rlock(&cache_lock) |
Referenced by cache_lookup_times(), vn_commname(), vn_dir_dd_ino(), vn_fullpath1(), vn_vptocnp(), and vn_vptocnp_locked().
| #define CACHE_RUNLOCK | ( | ) | rw_runlock(&cache_lock) |
Referenced by cache_lookup_times(), vn_commname(), vn_dir_dd_ino(), vn_fullpath1(), vn_vptocnp(), and vn_vptocnp_locked().
| #define CACHE_UPGRADE_LOCK | ( | ) | rw_try_upgrade(&cache_lock) |
Referenced by cache_lookup_times().
| #define CACHE_WLOCK | ( | ) | rw_wlock(&cache_lock) |
Referenced by cache_enter_time(), cache_lookup_times(), cache_purge(), cache_purge_negative(), and cache_purgevfs().
| #define CACHE_WUNLOCK | ( | ) | rw_wunlock(&cache_lock) |
Referenced by cache_enter_time(), cache_lookup_times(), cache_purge(), cache_purge_negative(), and cache_purgevfs().
| #define NCF_DTS 0x08 |
Definition at line 133 of file vfs_cache.c.
Referenced by cache_enter_time(), and cache_lookup_times().
| #define NCF_ISDOTDOT 0x02 |
Definition at line 131 of file vfs_cache.c.
Referenced by cache_enter_time(), cache_lookup_times(), cache_purge(), cache_zap(), vn_commname(), vn_dir_dd_ino(), and vn_vptocnp_locked().
| #define NCF_TS 0x04 |
Definition at line 132 of file vfs_cache.c.
Referenced by cache_enter_time(), cache_free(), cache_out_ts(), and nc_get_name().
| #define NCF_WHITE 0x01 |
Definition at line 130 of file vfs_cache.c.
Referenced by cache_enter_time(), and cache_lookup_times().
| #define NCHHASH | ( | hash | ) | (&nchashtbl[(hash) & nchash]) |
Definition at line 155 of file vfs_cache.c.
Referenced by cache_enter_time(), and cache_lookup_times().
| #define STATNODE | ( | mode, | |
| name, | |||
| var, | |||
| descr | |||
| ) | SYSCTL_ULONG(_vfs_cache, OID_AUTO, name, mode, var, 0, descr); |
Definition at line 1112 of file vfs_cache.c.
| #define STATNODE | ( | name, | |
| descr | |||
| ) |
Definition at line 1112 of file vfs_cache.c.
| __FBSDID | ( | "$BSDSUniX$" | ) |
| void cache_enter | ( | struct vnode * | dvp, |
| struct vnode * | vp, | ||
| struct componentname * | cnp | ||
| ) |
Definition at line 1436 of file vfs_cache.c.
References cache_enter_time().
Referenced by mqfs_lookupx().


| void cache_enter_time | ( | struct vnode * | dvp, |
| struct vnode * | vp, | ||
| struct componentname * | cnp, | ||
| struct timespec * | tsp, | ||
| struct timespec * | dtsp | ||
| ) |
Definition at line 705 of file vfs_cache.c.
References cache_free(), CACHE_WLOCK, CACHE_WUNLOCK, cache_zap(), desiredvnodes, flag, nc_get_name(), NCF_DTS, NCF_ISDOTDOT, NCF_TS, NCF_WHITE, NCHHASH, ticks, and vhold().
Referenced by cache_enter().


|
static |
Definition at line 220 of file vfs_cache.c.
References CACHE_PATH_CUTOFF, NCF_TS, and ts.
Referenced by cache_enter_time(), and cache_zap().

| int cache_lookup | ( | struct vnode * | dvp, |
| struct vnode ** | vpp, | ||
| struct componentname * | cnp | ||
| ) |
Definition at line 1443 of file vfs_cache.c.
References cache_lookup_times().
Referenced by vfs_cache_lookup().


| int cache_lookup_times | ( | struct vnode * | dvp, |
| struct vnode ** | vpp, | ||
| struct componentname * | cnp, | ||
| struct timespec * | tsp, | ||
| int * | ticksp | ||
| ) |
Definition at line 472 of file vfs_cache.c.
References cache_out_ts(), CACHE_RLOCK, CACHE_RUNLOCK, CACHE_UPGRADE_LOCK, CACHE_WLOCK, CACHE_WUNLOCK, cache_zap(), lookup(), nc_get_name(), NCF_DTS, NCF_ISDOTDOT, NCF_WHITE, NCHHASH, ticks, vget(), vput(), and vrele().
Referenced by cache_lookup().


|
static |
Definition at line 250 of file vfs_cache.c.
References NCF_TS.
Referenced by cache_lookup_times().

| void cache_purge | ( | struct vnode * | vp | ) |
Definition at line 941 of file vfs_cache.c.
References CACHE_WLOCK, CACHE_WUNLOCK, cache_zap(), and NCF_ISDOTDOT.
Referenced by do_unlink(), vfs_domount_first(), vfs_mountroot_shuffle(), and vgonel().


| void cache_purge_negative | ( | struct vnode * | vp | ) |
Definition at line 965 of file vfs_cache.c.
References CACHE_WLOCK, CACHE_WUNLOCK, and cache_zap().

| void cache_purgevfs | ( | struct mount * | mp | ) |
Definition at line 984 of file vfs_cache.c.
References CACHE_WLOCK, CACHE_WUNLOCK, and cache_zap().
Referenced by dounmount(), and vfs_mountroot_shuffle().


|
static |
Definition at line 412 of file vfs_cache.c.
References cache_free(), nc_get_name(), NCF_ISDOTDOT, and vdrop().
Referenced by cache_enter_time(), cache_lookup_times(), cache_purge(), cache_purge_negative(), and cache_purgevfs().


| int kern___getcwd | ( | struct thread * | td, |
| char * | buf, | ||
| enum uio_seg | bufseg, | ||
| u_int | buflen | ||
| ) |
Definition at line 1063 of file vfs_cache.c.
References free(), malloc(), vn_fullpath1(), and vrele().
Referenced by sys___getcwd().


|
static |
Definition at line 157 of file vfs_cache.c.
References CACHE_PATH_CUTOFF.
|
static |
|
static |
Definition at line 239 of file vfs_cache.c.
References NCF_TS.
Referenced by cache_enter_time(), cache_lookup_times(), cache_zap(), vn_commname(), and vn_vptocnp_locked().

|
static |
Definition at line 914 of file vfs_cache.c.
References CACHE_PATH_CUTOFF, desiredvnodes, and hashinit().

| SDT_PROBE_DEFINE1 | ( | vfs | , |
| namecache | , | ||
| fullpath | , | ||
| entry | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE1 | ( | vfs | , |
| namecache | , | ||
| fullpath | , | ||
| miss | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE1 | ( | vfs | , |
| namecache | , | ||
| purge | , | ||
| done | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE1 | ( | vfs | , |
| namecache | , | ||
| purge_negative | , | ||
| done | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE1 | ( | vfs | , |
| namecache | , | ||
| purgevfs | , | ||
| done | , | ||
| "struct mount *" | |||
| ) |
| SDT_PROBE_DEFINE2 | ( | vfs | , |
| namecache | , | ||
| enter_negative | , | ||
| done | , | ||
| "struct vnode *" | , | ||
| "char *" | |||
| ) |
| SDT_PROBE_DEFINE2 | ( | vfs | , |
| namecache | , | ||
| zap_negative | , | ||
| done | , | ||
| "struct vnode *" | , | ||
| "char *" | |||
| ) |
| SDT_PROBE_DEFINE3 | ( | vfs | , |
| namecache | , | ||
| enter | , | ||
| done | , | ||
| "struct vnode *" | , | ||
| "char *" | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE3 | ( | vfs | , |
| namecache | , | ||
| fullpath | , | ||
| hit | , | ||
| "struct vnode *" | , | ||
| "char *" | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE3 | ( | vfs | , |
| namecache | , | ||
| fullpath | , | ||
| return | , | ||
| "int" | , | ||
| "struct vnode *" | , | ||
| "char *" | |||
| ) |
| SDT_PROBE_DEFINE3 | ( | vfs | , |
| namecache | , | ||
| lookup | , | ||
| hit | , | ||
| "struct vnode *" | , | ||
| "char *" | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROBE_DEFINE3 | ( | vfs | , |
| namecache | , | ||
| zap | , | ||
| done | , | ||
| "struct vnode *" | , | ||
| "char *" | , | ||
| "struct vnode *" | |||
| ) |
| SDT_PROVIDER_DECLARE | ( | vfs | ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numneg | , | ||
| & | numneg, | ||
| "Number of negative cache entries" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numcache | , | ||
| & | numcache, | ||
| "Number of cache entries" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numcalls | , | ||
| & | numcalls, | ||
| "Number of cache lookups" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| dothits | , | ||
| & | dothits, | ||
| "Number of '.' hits" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| dotdothits | , | ||
| & | dotdothits, | ||
| "Number of '..' hits" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| nummiss | , | ||
| & | nummiss, | ||
| "Number of cache misses" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| nummisszap | , | ||
| & | nummisszap, | ||
| "Number of cache misses we do not want to cache" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numposzaps | , | ||
| & | numposzaps, | ||
| "Number of cache hits (positive) we do not want to cache" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numposhits | , | ||
| & | numposhits, | ||
| "Number of cache hits (positive)" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numnegzaps | , | ||
| & | numnegzaps, | ||
| "Number of cache hits (negative) we do not want to cache" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numneghits | , | ||
| & | numneghits, | ||
| "Number of cache hits (negative)" | |||
| ) |
| STATNODE | ( | CTLFLAG_RD | , |
| numupgrades | , | ||
| & | numupgrades, | ||
| "Number of updates of the cache after lookup (write lock + retry)" | |||
| ) |
| STATNODE | ( | numfullpathcalls | , |
| "Number of fullpath search calls" | |||
| ) |
| STATNODE | ( | numfullpathfail1 | , |
| "Number of fullpath search errors (ENOTDIR)" | |||
| ) |
| STATNODE | ( | numfullpathfail2 | , |
| "Number of fullpath search errors (VOP_VPTOCNP failures)" | |||
| ) |
| STATNODE | ( | numfullpathfail4 | , |
| "Number of fullpath search errors (ENOMEM)" | |||
| ) |
| STATNODE | ( | numfullpathfound | , |
| "Number of successful fullpath calls" | |||
| ) |
| int sys___getcwd | ( | struct thread * | td, |
| struct __getcwd_args * | uap | ||
| ) |
Definition at line 1054 of file vfs_cache.c.
References kern___getcwd().

| SYSCTL_INT | ( | _debug | , |
| OID_AUTO | , | ||
| vfscache | , | ||
| CTLFLAG_RW | , | ||
| & | doingcache, | ||
| 0 | , | ||
| "VFS namecache enabled" | |||
| ) |
| SYSCTL_INT | ( | _debug_sizeof | , |
| OID_AUTO | , | ||
| namecache | , | ||
| CTLFLAG_RD | , | ||
| SYSCTL_NULL_INT_PTR | , | ||
| sizeof(struct namecache) | , | ||
| "sizeof(struct namecache)" | |||
| ) |
| SYSCTL_INT | ( | _debug | , |
| OID_AUTO | , | ||
| disablecwd | , | ||
| CTLFLAG_RW | , | ||
| & | disablecwd, | ||
| 0 | , | ||
| "Disable the getcwd syscall" | |||
| ) |
| SYSCTL_INT | ( | _debug | , |
| OID_AUTO | , | ||
| disablefullpath | , | ||
| CTLFLAG_RW | , | ||
| & | disablefullpath, | ||
| 0 | , | ||
| "Disable the vn_fullpath function" | |||
| ) |
|
static |
| SYSCTL_OPAQUE | ( | _vfs_cache | , |
| OID_AUTO | , | ||
| nchstats | , | ||
| CTLFLAG_RD| | CTLFLAG_MPSAFE, | ||
| & | nchstats, | ||
| sizeof(nchstats) | , | ||
| "LU" | , | ||
| "VFS cache effectiveness statistics" | |||
| ) |
| SYSINIT | ( | vfs | , |
| SI_SUB_VFS | , | ||
| SI_ORDER_SECOND | , | ||
| nchinit | , | ||
| NULL | |||
| ) |
| int vfs_cache_lookup | ( | struct vop_lookup_args * | ap | ) |
Definition at line 1008 of file vfs_cache.c.
References cache_lookup().

| int vn_commname | ( | struct vnode * | vp, |
| char * | buf, | ||
| u_int | buflen | ||
| ) |
Definition at line 1406 of file vfs_cache.c.
References CACHE_RLOCK, CACHE_RUNLOCK, nc_get_name(), and NCF_ISDOTDOT.
Referenced by do_execve().


| struct vnode* vn_dir_dd_ino | ( | struct vnode * | vp | ) |
Definition at line 1384 of file vfs_cache.c.
References CACHE_RLOCK, CACHE_RUNLOCK, NCF_ISDOTDOT, and vget().

| int vn_fullpath | ( | struct thread * | td, |
| struct vnode * | vn, | ||
| char ** | retbuf, | ||
| char ** | freebuf | ||
| ) |
Definition at line 1133 of file vfs_cache.c.
References buf, free(), malloc(), vn_fullpath1(), and vrele().
Referenced by do_execve(), fill_vnode_info(), kern_proc_vmmap_out(), ptrace_vm_entry(), and sysctl_kern_proc_pathname().


|
static |
Definition at line 1276 of file vfs_cache.c.
References CACHE_RLOCK, CACHE_RUNLOCK, rootvnode, vn_vptocnp_locked(), vref(), and vrele().
Referenced by kern___getcwd(), vn_fullpath(), and vn_fullpath_global().


| int vn_fullpath_global | ( | struct thread * | td, |
| struct vnode * | vn, | ||
| char ** | retbuf, | ||
| char ** | freebuf | ||
| ) |
Definition at line 1170 of file vfs_cache.c.
References buf, free(), malloc(), rootvnode, and vn_fullpath1().
Referenced by vn_path_to_global_path().


| int vn_path_to_global_path | ( | struct thread * | td, |
| struct vnode * | vp, | ||
| char * | path, | ||
| u_int | pathlen | ||
| ) |
Definition at line 1463 of file vfs_cache.c.
References free(), namei(), NDFREE(), vn_fullpath_global(), vput(), and vrele().
Referenced by kern_jail_set(), sys_unmount(), and vfs_domount().


| int vn_vptocnp | ( | struct vnode ** | vp, |
| struct ucred * | cred, | ||
| char * | buf, | ||
| u_int * | buflen | ||
| ) |
Definition at line 1190 of file vfs_cache.c.
References CACHE_RLOCK, CACHE_RUNLOCK, and vn_vptocnp_locked().

|
static |
Definition at line 1202 of file vfs_cache.c.
References CACHE_RLOCK, CACHE_RUNLOCK, nc_get_name(), NCF_ISDOTDOT, vput(), vref(), and vrele().
Referenced by vn_fullpath1(), and vn_vptocnp().


|
static |
Definition at line 1048 of file vfs_cache.c.
|
static |
Definition at line 1116 of file vfs_cache.c.
|
static |
Definition at line 263 of file vfs_cache.c.
|
static |
Definition at line 284 of file vfs_cache.c.
|
static |
Definition at line 282 of file vfs_cache.c.
|
static |
Definition at line 280 of file vfs_cache.c.
|
static |
Definition at line 286 of file vfs_cache.c.
|
static |
Definition at line 288 of file vfs_cache.c.
|
static |
Definition at line 290 of file vfs_cache.c.
|
static |
Definition at line 298 of file vfs_cache.c.
|
static |
Definition at line 296 of file vfs_cache.c.
|
static |
Definition at line 294 of file vfs_cache.c.
|
static |
Definition at line 292 of file vfs_cache.c.
|
static |
Definition at line 300 of file vfs_cache.c.