634 extern void nfs_exportfini(void);
635 extern void nfs_export_zone_init(nfs_globals_t *);
636 extern void nfs_export_zone_fini(nfs_globals_t *);
637 extern void nfs_export_zone_shutdown(nfs_globals_t *);
638 extern int nfs_export_get_rootfh(nfs_globals_t *);
639 extern int chk_clnt_sec(struct exportinfo *, struct svc_req *);
640 extern int makefh(fhandle_t *, struct vnode *, struct exportinfo *);
641 extern int makefh_ol(fhandle_t *, struct exportinfo *, uint_t);
642 extern int makefh3(nfs_fh3 *, struct vnode *, struct exportinfo *);
643 extern int makefh3_ol(nfs_fh3 *, struct exportinfo *, uint_t);
644 extern vnode_t *nfs_fhtovp(fhandle_t *, struct exportinfo *);
645 extern vnode_t *nfs3_fhtovp(nfs_fh3 *, struct exportinfo *);
646 extern struct exportinfo *checkexport(fsid_t *, struct fid *);
647 extern struct exportinfo *checkexport4(fsid_t *, struct fid *, vnode_t *);
648 extern void exi_hold(struct exportinfo *);
649 extern void exi_rele(struct exportinfo *);
650 extern struct exportinfo *nfs_vptoexi(vnode_t *, vnode_t *, cred_t *, int *,
651 int *, bool_t);
652 extern int nfs_check_vpexi(vnode_t *, vnode_t *, cred_t *,
653 struct exportinfo **);
654 extern vnode_t *untraverse(vnode_t *);
655 extern int vn_is_nfs_reparse(vnode_t *, cred_t *);
656 extern int client_is_downrev(struct svc_req *);
657 extern char *build_symlink(vnode_t *, cred_t *, size_t *);
658
659 extern fhandle_t nullfh2; /* for comparing V2 filehandles */
660
661 typedef struct nfs_export {
662 /* Root of nfs pseudo namespace */
663 treenode_t *ns_root;
664
665 nfs_globals_t *ne_globals; /* "up" pointer */
666
667 struct exportinfo *exptable_path_hash[PKP_HASH_SIZE];
668 struct exportinfo *exptable[EXPTABLESIZE];
669
670 /*
671 * Read/Write lock that protects the exportinfo list. This lock
672 * must be held when searching or modifiying the exportinfo list.
673 */
674 krwlock_t exported_lock;
|
634 extern void nfs_exportfini(void);
635 extern void nfs_export_zone_init(nfs_globals_t *);
636 extern void nfs_export_zone_fini(nfs_globals_t *);
637 extern void nfs_export_zone_shutdown(nfs_globals_t *);
638 extern int nfs_export_get_rootfh(nfs_globals_t *);
639 extern int chk_clnt_sec(struct exportinfo *, struct svc_req *);
640 extern int makefh(fhandle_t *, struct vnode *, struct exportinfo *);
641 extern int makefh_ol(fhandle_t *, struct exportinfo *, uint_t);
642 extern int makefh3(nfs_fh3 *, struct vnode *, struct exportinfo *);
643 extern int makefh3_ol(nfs_fh3 *, struct exportinfo *, uint_t);
644 extern vnode_t *nfs_fhtovp(fhandle_t *, struct exportinfo *);
645 extern vnode_t *nfs3_fhtovp(nfs_fh3 *, struct exportinfo *);
646 extern struct exportinfo *checkexport(fsid_t *, struct fid *);
647 extern struct exportinfo *checkexport4(fsid_t *, struct fid *, vnode_t *);
648 extern void exi_hold(struct exportinfo *);
649 extern void exi_rele(struct exportinfo *);
650 extern struct exportinfo *nfs_vptoexi(vnode_t *, vnode_t *, cred_t *, int *,
651 int *, bool_t);
652 extern int nfs_check_vpexi(vnode_t *, vnode_t *, cred_t *,
653 struct exportinfo **);
654 extern vnode_t *untraverse(vnode_t *, vnode_t *);
655 extern int vn_is_nfs_reparse(vnode_t *, cred_t *);
656 extern int client_is_downrev(struct svc_req *);
657 extern char *build_symlink(vnode_t *, cred_t *, size_t *);
658
659 extern fhandle_t nullfh2; /* for comparing V2 filehandles */
660
661 typedef struct nfs_export {
662 /* Root of nfs pseudo namespace */
663 treenode_t *ns_root;
664
665 nfs_globals_t *ne_globals; /* "up" pointer */
666
667 struct exportinfo *exptable_path_hash[PKP_HASH_SIZE];
668 struct exportinfo *exptable[EXPTABLESIZE];
669
670 /*
671 * Read/Write lock that protects the exportinfo list. This lock
672 * must be held when searching or modifiying the exportinfo list.
673 */
674 krwlock_t exported_lock;
|