version 1.84, 2013/10/17 21:03:27 |
version 1.84.4.3, 2015/02/27 19:39:56 |
Line 94 extern int puffsdebug; /* puffs_subr.c * |
|
Line 94 extern int puffsdebug; /* puffs_subr.c * |
|
((pmp)->pmp_flags & PUFFS_KFLAG_CACHE_FS_TTL) |
((pmp)->pmp_flags & PUFFS_KFLAG_CACHE_FS_TTL) |
#define PUFFS_USE_DOTDOTCACHE(pmp) \ |
#define PUFFS_USE_DOTDOTCACHE(pmp) \ |
((pmp)->pmp_flags & PUFFS_KFLAG_CACHE_DOTDOT) |
((pmp)->pmp_flags & PUFFS_KFLAG_CACHE_DOTDOT) |
|
#define PUFFS_USE_METAFLUSH(pmp) \ |
|
(((pmp)->pmp_flags & PUFFS_KFLAG_NOFLUSH_META) == 0) |
|
|
#define PUFFS_WCACHEINFO(pmp) (__USE(pmp), 0) |
#define PUFFS_WCACHEINFO(pmp) (__USE(pmp), 0) |
|
|
Line 144 struct puffs_mount { |
|
Line 146 struct puffs_mount { |
|
|
|
struct puffs_wq pmp_msg_replywait; |
struct puffs_wq pmp_msg_replywait; |
|
|
struct puffs_node_hashlist *pmp_pnodehash; |
|
int pmp_npnodehash; |
|
|
|
/* |
|
* a list of cookies which is going to be puffs_getvnode'd. |
|
* this is merely a loose attempt to prevent races. |
|
*/ |
|
LIST_HEAD(, puffs_newcookie) pmp_newcookie; |
|
|
|
struct mount *pmp_mp; |
struct mount *pmp_mp; |
|
|
struct vnode *pmp_root; |
struct vnode *pmp_root; |
Line 197 struct puffs_mount { |
|
Line 190 struct puffs_mount { |
|
#define PNODE_FAF 0x004 /* issue all operations as FAF */ |
#define PNODE_FAF 0x004 /* issue all operations as FAF */ |
#define PNODE_DOINACT 0x008 /* if inactive-on-demand, call inactive */ |
#define PNODE_DOINACT 0x008 /* if inactive-on-demand, call inactive */ |
#define PNODE_SOPEXP 0x100 /* Node reclaim postponed in sop thread */ |
#define PNODE_SOPEXP 0x100 /* Node reclaim postponed in sop thread */ |
|
#define PNODE_RDIRECT 0x200 /* bypass page cache on read */ |
|
#define PNODE_WDIRECT 0x400 /* bypass page cache on write */ |
|
|
#define PNODE_METACACHE_ATIME 0x10 /* cache atime metadata */ |
#define PNODE_METACACHE_ATIME 0x10 /* cache atime metadata */ |
#define PNODE_METACACHE_CTIME 0x20 /* cache atime metadata */ |
#define PNODE_METACACHE_CTIME 0x20 /* cache atime metadata */ |
Line 235 struct puffs_node { |
|
Line 230 struct puffs_node { |
|
int pn_va_timeout; /* attribute cache */ |
int pn_va_timeout; /* attribute cache */ |
struct vattr * pn_va_cache; /* attribute cache */ |
struct vattr * pn_va_cache; /* attribute cache */ |
struct vnode * pn_parent; /* parent cache */ |
struct vnode * pn_parent; /* parent cache */ |
|
|
LIST_ENTRY(puffs_node) pn_hashent; |
|
}; |
}; |
|
|
typedef void (*parkdone_fn)(struct puffs_mount *, struct puffs_req *, void *); |
typedef void (*parkdone_fn)(struct puffs_mount *, struct puffs_req *, void *); |
Line 272 void puffs_releasenode(struct puffs_node |
|
Line 265 void puffs_releasenode(struct puffs_node |
|
void puffs_referencenode(struct puffs_node *); |
void puffs_referencenode(struct puffs_node *); |
|
|
#define PUFFS_NOSUCHCOOKIE (-1) |
#define PUFFS_NOSUCHCOOKIE (-1) |
int puffs_cookie2vnode(struct puffs_mount *, puffs_cookie_t, int, int, |
int puffs_cookie2vnode(struct puffs_mount *, puffs_cookie_t, |
struct vnode **); |
struct vnode **); |
void puffs_makecn(struct puffs_kcn *, struct puffs_kcred *, |
void puffs_makecn(struct puffs_kcn *, struct puffs_kcred *, |
const struct componentname *, int); |
const struct componentname *, int); |