diff options
Diffstat (limited to 'usr/src/uts/common/nfs/export.h')
-rw-r--r-- | usr/src/uts/common/nfs/export.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/usr/src/uts/common/nfs/export.h b/usr/src/uts/common/nfs/export.h index 56d8e2b0de..5d6072c2f7 100644 --- a/usr/src/uts/common/nfs/export.h +++ b/usr/src/uts/common/nfs/export.h @@ -419,13 +419,7 @@ typedef struct treenode { /* Root of nfs pseudo namespace */ extern treenode_t *ns_root; -#define EXPTABLESIZE 256 - -struct exp_hash { - struct exportinfo *prev; /* ptr to the previous exportinfo */ - struct exportinfo *next; /* ptr to the next exportinfo */ - struct exportinfo **bckt; /* backpointer to the hash bucket */ -}; +#define EXPTABLESIZE 16 /* * A node associated with an export entry on the @@ -447,8 +441,7 @@ struct exportinfo { struct exportdata exi_export; fsid_t exi_fsid; struct fid exi_fid; - struct exp_hash fid_hash; - struct exp_hash path_hash; + struct exportinfo *exi_hash; struct treenode *exi_tree; fhandle_t exi_fh; krwlock_t exi_cache_lock; @@ -512,7 +505,6 @@ struct exp_visible { typedef struct exp_visible exp_visible_t; #define PSEUDO(exi) ((exi)->exi_export.ex_flags & EX_PSEUDO) -#define EXP_LINKED(exi) ((exi)->fid_hash.bckt != NULL) #define EQFSID(fsidp1, fsidp2) \ (((fsidp1)->val[0] == (fsidp2)->val[0]) && \ @@ -541,6 +533,7 @@ extern int nfsauth4_access(struct exportinfo *, vnode_t *, struct svc_req *); extern int nfsauth4_secinfo_access(struct exportinfo *, struct svc_req *, int, int); +extern int nfs_fhhash(fsid_t *, fid_t *); extern int nfs_fhbcmp(char *, char *, int); extern int nfs_exportinit(void); extern void nfs_exportfini(void); @@ -562,7 +555,8 @@ extern struct exportinfo *nfs_vptoexi(vnode_t *, vnode_t *, cred_t *, int *, extern int nfs_check_vpexi(vnode_t *, vnode_t *, cred_t *, struct exportinfo **); extern void export_link(struct exportinfo *); -extern void export_unlink(struct exportinfo *); +extern int export_unlink(fsid_t *, fid_t *, vnode_t *, + struct exportinfo **); extern vnode_t *untraverse(vnode_t *); extern int vn_is_nfs_reparse(vnode_t *, cred_t *); extern int client_is_downrev(struct svc_req *); @@ -579,8 +573,8 @@ extern int nfs_visible_inode(struct exportinfo *, ino64_t, int *); extern int has_visible(struct exportinfo *, vnode_t *); extern void free_visible(struct exp_visible *); extern int nfs_exported(struct exportinfo *, vnode_t *); -extern struct exportinfo *pseudo_exportfs(vnode_t *, fid_t *, - struct exp_visible *, struct exportdata *); +extern int pseudo_exportfs(vnode_t *, struct exp_visible *, + struct exportdata *, struct exportinfo **); extern int vop_fid_pseudo(vnode_t *, fid_t *fidp); extern int nfs4_vget_pseudo(struct exportinfo *, vnode_t **, fid_t *); /* |