Print this page
nfssrv: nfsstat reports zeroed data in zone

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/nfs/nfs.h
          +++ new/usr/src/uts/common/nfs/nfs.h
↓ open down ↓ 109 lines elided ↑ open up ↑
 110  110          kcondvar_t              rdma_wait_cv;
 111  111          kmutex_t                rdma_wait_mutex;
 112  112  
 113  113          zoneid_t                nfs_zoneid;
 114  114          /* Per-zone data structures private to each module */
 115  115          struct nfs_export       *nfs_export;    /* nfs_export.c */
 116  116          struct nfs_srv          *nfs_srv;       /* nfs_srv.c */
 117  117          struct nfs3_srv         *nfs3_srv;      /* nfs3_srv.c */
 118  118          struct nfs4_srv         *nfs4_srv;      /* nfs4_srv.c */
 119  119          struct nfsauth_globals  *nfs_auth;      /* nfs_auth.c */
      120 +
      121 +        /* statistic: nfs_stat.c, etc. */
      122 +        kstat_named_t           *svstat[NFS_VERSMAX + 1];
      123 +        kstat_named_t           *rfsproccnt[NFS_VERSMAX + 1];
      124 +        kstat_named_t           *aclproccnt[NFS_VERSMAX + 1];
 120  125  } nfs_globals_t;
 121  126  
 122  127  /*
 123  128   * Default delegation setting for the server ==> "on"
 124  129   */
 125  130  #define NFS_SERVER_DELEGATION_DEFAULT   (TRUE)
 126  131  
 127  132  /* Maximum size of data portion of a remote request */
 128  133  #define NFS_MAXDATA     8192
 129  134  #define NFS_MAXNAMLEN   255
↓ open down ↓ 793 lines elided ↑ open up ↑
 923  928   * flags to define path types during Multi Component Lookups
 924  929   * using the public filehandle
 925  930   */
 926  931  #define URLPATH         0x01    /* Universal Resource Locator path */
 927  932  #define NATIVEPATH      0x02    /* Native path, i.e., via mount protocol */
 928  933  #define SECURITY_QUERY  0x04    /* Security query */
 929  934  
 930  935  /* index for svstat_ptr */
 931  936  enum nfs_svccounts {NFS_CALLS, NFS_BADCALLS, NFS_REFERRALS, NFS_REFERLINKS};
 932  937  
      938 +#define NFS_V2  NFS_VERSION
      939 +
 933  940  /*      function defs for NFS kernel */
 934  941  extern int      nfs_waitfor_purge_complete(vnode_t *);
 935  942  extern int      nfs_validate_caches(vnode_t *, cred_t *);
 936  943  extern void     nfs_purge_caches(vnode_t *, int, cred_t *);
 937  944  extern void     nfs_purge_rddir_cache(vnode_t *);
 938  945  extern void     nfs_attrcache(vnode_t *, struct nfsfattr *, hrtime_t);
 939  946  extern int      nfs_cache_fattr(vnode_t *, struct nfsfattr *, vattr_t *,
 940  947      hrtime_t, cred_t *);
 941  948  extern void     nfs_attr_cache(vnode_t *, vattr_t *, hrtime_t, cred_t *);
 942  949  extern void     nfs_attrcache_va(vnode_t *, struct vattr *);
↓ open down ↓ 63 lines elided ↑ open up ↑
1006 1013  extern nvlist_t *rfs4_dss_paths, *rfs4_dss_oldpaths;
1007 1014  
1008 1015  extern kstat_named_t    *global_svstat_ptr[];
1009 1016  
1010 1017  extern zone_key_t       nfssrv_zone_key;
1011 1018  extern list_t           nfssrv_globals_list;
1012 1019  extern krwlock_t        nfssrv_globals_rwl;
1013 1020  
1014 1021  extern krwlock_t        rroklock;
1015 1022  extern vtype_t          nf_to_vt[];
1016      -extern kstat_named_t    *rfsproccnt_v2_ptr;
1017 1023  extern kmutex_t         nfs_minor_lock;
1018 1024  extern int              nfs_major;
1019 1025  extern int              nfs_minor;
1020 1026  extern vfsops_t         *nfs_vfsops;
1021 1027  extern struct vnodeops  *nfs_vnodeops;
1022 1028  extern const struct fs_operation_def nfs_vnodeops_template[];
1023 1029  extern int              nfsfstyp;
1024 1030  extern void             (*nfs_srv_quiesce_func)(void);
1025 1031  extern int              (*nfs_srv_dss_func)(char *, size_t);
1026 1032  
1027 1033  /*
1028 1034   * Per-zone stats as consumed by nfsstat(1m)
1029 1035   */
1030 1036  struct nfs_version_stats {
1031 1037          kstat_named_t   *aclreqcnt_ptr;         /* nfs_acl:0:aclreqcnt_v? */
1032      -        kstat_named_t   *aclproccnt_ptr;        /* nfs_acl:0:aclproccnt_v? */
1033 1038          kstat_named_t   *rfsreqcnt_ptr;         /* nfs:0:rfsreqcnt_v? */
1034      -        kstat_named_t   *rfsproccnt_ptr;        /* nfs:0:rfsproccnt_v? */
1035 1039  };
1036 1040  
1037 1041  /*
1038 1042   * A bit of asymmetry: nfs:0:nfs_client isn't part of this structure.
1039 1043   */
1040 1044  struct nfs_stats {
1041      -        kstat_named_t           *nfs_stats_svstat_ptr[NFS_VERSMAX + 1];
1042 1045          struct nfs_version_stats        nfs_stats_v2;
1043 1046          struct nfs_version_stats        nfs_stats_v3;
1044 1047          struct nfs_version_stats        nfs_stats_v4;
1045 1048  };
1046 1049  
1047 1050  /*
1048 1051   * Key used to retrieve counters.
1049 1052   */
1050 1053  extern zone_key_t nfsstat_zone_key;
1051 1054  
1052 1055  /*
1053 1056   * Zone callback functions.
1054 1057   */
1055 1058  extern void     *nfsstat_zone_init(zoneid_t);
1056 1059  extern void     nfsstat_zone_fini(zoneid_t, void *);
1057 1060  
     1061 +extern void rfs_stat_zone_init(nfs_globals_t *);
     1062 +extern void rfs_stat_zone_fini(nfs_globals_t *);
     1063 +
1058 1064  #endif  /* _KERNEL */
1059 1065  
1060 1066  /*
1061 1067   * Version 3 declarations and definitions.
1062 1068   */
1063 1069  
1064 1070  #define NFS3_FHSIZE 64
1065 1071  #define NFS3_COOKIEVERFSIZE 8
1066 1072  #define NFS3_CREATEVERFSIZE 8
1067 1073  #define NFS3_WRITEVERFSIZE 8
↓ open down ↓ 1263 lines elided ↑ open up ↑
2331 2337  extern void     vattr_to_post_op_attr(struct vattr *, post_op_attr *);
2332 2338  extern void     mblk_to_iov(mblk_t *, int, struct iovec *);
2333 2339  extern int      rfs_publicfh_mclookup(char *, vnode_t *, cred_t *, vnode_t **,
2334 2340      struct exportinfo **, struct sec_ol *);
2335 2341  extern int      rfs_pathname(char *, vnode_t **, vnode_t **, vnode_t *,
2336 2342      cred_t *, int);
2337 2343  extern int      rfs_cross_mnt(vnode_t **, struct exportinfo **);
2338 2344  extern int      rfs_climb_crossmnt(vnode_t **, struct exportinfo **, cred_t *);
2339 2345  
2340 2346  extern vtype_t          nf3_to_vt[];
2341      -extern kstat_named_t    *rfsproccnt_v3_ptr;
2342 2347  extern vfsops_t         *nfs3_vfsops;
2343 2348  extern struct vnodeops  *nfs3_vnodeops;
2344 2349  extern const struct fs_operation_def nfs3_vnodeops_template[];
2345 2350  
2346 2351  /*
2347 2352   * Some servers do not properly update the attributes of the
2348 2353   * directory when changes are made.  To allow interoperability
2349 2354   * with these broken servers, the nfs_disable_rddir_cache
2350 2355   * parameter can be used to disable readdir response caching.
2351 2356   */
↓ open down ↓ 53 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX