Print this page
nfssrv: nfsstat reports zeroed data in zone
@@ -3811,14 +3811,16 @@
data = kmem_alloc(MAXPATHLEN + 1, KM_SLEEP);
if (is_referral) {
char *s;
size_t strsz;
+ kstat_named_t *stat =
+ cs->exi->exi_ne->ne_globals->svstat[NFS_V4];
/* Get an artificial symlink based on a referral */
s = build_symlink(vp, cs->cr, &strsz);
- global_svstat_ptr[4][NFS_REFERLINKS].value.ui64++;
+ stat[NFS_REFERLINKS].value.ui64++;
DTRACE_PROBE2(nfs4serv__func__referral__reflink,
vnode_t *, vp, char *, s);
if (s == NULL)
error = EINVAL;
else {
@@ -5890,10 +5892,11 @@
for (i = 0; i < args->array_len && cs.cont; i++) {
nfs_argop4 *argop;
nfs_resop4 *resop;
uint_t op;
+ kstat_named_t *stat = ne->ne_globals->rfsproccnt[NFS_V4];
argop = &args->array[i];
resop = &resp->array[i];
resop->resop = argop->argop;
op = (uint_t)resop->resop;
@@ -5901,11 +5904,11 @@
if (op < rfsv4disp_cnt) {
/*
* Count the individual ops here; NULL and COMPOUND
* are counted in common_dispatch()
*/
- rfsproccnt_v4_ptr[op].value.ui64++;
+ stat[op].value.ui64++;
NFS4_DEBUG(rfs4_debug > 1,
(CE_NOTE, "Executing %s", rfs4_op_string[op]));
(*rfsv4disptab[op].dis_proc)(argop, resop, req, &cs);
NFS4_DEBUG(rfs4_debug > 1, (CE_NOTE, "%s returned %d",
@@ -5918,11 +5921,11 @@
* will have already returned BADXDR if op doesn't
* decode to legal value. This only done for a
* day when XDR code doesn't verify v4 opcodes.
*/
op = OP_ILLEGAL;
- rfsproccnt_v4_ptr[OP_ILLEGAL_IDX].value.ui64++;
+ stat[OP_ILLEGAL_IDX].value.ui64++;
rfs4_op_illegal(argop, resop, req, &cs);
cs.cont = FALSE;
}