Print this page
nfssrv: nfsstat reports zeroed data in zone
@@ -115,10 +115,15 @@
struct nfs_export *nfs_export; /* nfs_export.c */
struct nfs_srv *nfs_srv; /* nfs_srv.c */
struct nfs3_srv *nfs3_srv; /* nfs3_srv.c */
struct nfs4_srv *nfs4_srv; /* nfs4_srv.c */
struct nfsauth_globals *nfs_auth; /* nfs_auth.c */
+
+ /* statistic: nfs_stat.c, etc. */
+ kstat_named_t *svstat[NFS_VERSMAX + 1];
+ kstat_named_t *rfsproccnt[NFS_VERSMAX + 1];
+ kstat_named_t *aclproccnt[NFS_VERSMAX + 1];
} nfs_globals_t;
/*
* Default delegation setting for the server ==> "on"
*/
@@ -928,10 +933,12 @@
#define SECURITY_QUERY 0x04 /* Security query */
/* index for svstat_ptr */
enum nfs_svccounts {NFS_CALLS, NFS_BADCALLS, NFS_REFERRALS, NFS_REFERLINKS};
+#define NFS_V2 NFS_VERSION
+
/* function defs for NFS kernel */
extern int nfs_waitfor_purge_complete(vnode_t *);
extern int nfs_validate_caches(vnode_t *, cred_t *);
extern void nfs_purge_caches(vnode_t *, int, cred_t *);
extern void nfs_purge_rddir_cache(vnode_t *);
@@ -1011,11 +1018,10 @@
extern list_t nfssrv_globals_list;
extern krwlock_t nfssrv_globals_rwl;
extern krwlock_t rroklock;
extern vtype_t nf_to_vt[];
-extern kstat_named_t *rfsproccnt_v2_ptr;
extern kmutex_t nfs_minor_lock;
extern int nfs_major;
extern int nfs_minor;
extern vfsops_t *nfs_vfsops;
extern struct vnodeops *nfs_vnodeops;
@@ -1027,20 +1033,17 @@
/*
* Per-zone stats as consumed by nfsstat(1m)
*/
struct nfs_version_stats {
kstat_named_t *aclreqcnt_ptr; /* nfs_acl:0:aclreqcnt_v? */
- kstat_named_t *aclproccnt_ptr; /* nfs_acl:0:aclproccnt_v? */
kstat_named_t *rfsreqcnt_ptr; /* nfs:0:rfsreqcnt_v? */
- kstat_named_t *rfsproccnt_ptr; /* nfs:0:rfsproccnt_v? */
};
/*
* A bit of asymmetry: nfs:0:nfs_client isn't part of this structure.
*/
struct nfs_stats {
- kstat_named_t *nfs_stats_svstat_ptr[NFS_VERSMAX + 1];
struct nfs_version_stats nfs_stats_v2;
struct nfs_version_stats nfs_stats_v3;
struct nfs_version_stats nfs_stats_v4;
};
@@ -1053,10 +1056,13 @@
* Zone callback functions.
*/
extern void *nfsstat_zone_init(zoneid_t);
extern void nfsstat_zone_fini(zoneid_t, void *);
+extern void rfs_stat_zone_init(nfs_globals_t *);
+extern void rfs_stat_zone_fini(nfs_globals_t *);
+
#endif /* _KERNEL */
/*
* Version 3 declarations and definitions.
*/
@@ -2336,11 +2342,10 @@
cred_t *, int);
extern int rfs_cross_mnt(vnode_t **, struct exportinfo **);
extern int rfs_climb_crossmnt(vnode_t **, struct exportinfo **, cred_t *);
extern vtype_t nf3_to_vt[];
-extern kstat_named_t *rfsproccnt_v3_ptr;
extern vfsops_t *nfs3_vfsops;
extern struct vnodeops *nfs3_vnodeops;
extern const struct fs_operation_def nfs3_vnodeops_template[];
/*