usr/src/uts/common/fs/nfs/nfs_stats.c
author jpk
Fri, 24 Mar 2006 12:29:20 -0800
changeset 1676 37f4a3e2bd99
parent 0 68f95e015346
child 2951 8e5048c1f58e
permissions -rw-r--r--
PSARC/2002/762 Layered Trusted Solaris PSARC/2005/060 TSNET: Trusted Networking with Security Labels PSARC/2005/259 Layered Trusted Solaris Label Interfaces PSARC/2005/573 Solaris Trusted Extensions for Printing PSARC/2005/691 Trusted Extensions for Device Allocation PSARC/2005/723 Solaris Trusted Extensions Filesystem Labeling PSARC/2006/009 Labeled Auditing PSARC/2006/155 Trusted Extensions RBAC Changes PSARC/2006/191 is_system_labeled 6293271 Zone processes should use zone_kcred instead of kcred 6394554 integrate Solaris Trusted Extensions
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
 * Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
 * (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 * with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
#pragma ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#include <sys/types.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#include <sys/kstat.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
#include <sys/zone.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#include <sys/kmem.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
#include <sys/systm.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
#include <nfs/nfs.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#include <nfs/nfs4_kprot.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
 * Key to retrieve per-zone data corresponding to NFS kstats consumed by
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * nfsstat(1m).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
zone_key_t nfsstat_zone_key;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
 * Convenience routine to create a named kstat associated with zoneid, named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
 * module:0:name:"misc", using the provided template to initialize the names
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
 * and values of the stats.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
static kstat_named_t *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
nfsstat_zone_init_common(zoneid_t zoneid, const char *module, int vers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
			    const char *name, const kstat_named_t *template,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
			    size_t template_size)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
	kstat_t *ksp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
	ks_data = kmem_alloc(template_size, KM_SLEEP);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
	bcopy(template, ks_data, template_size);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	if ((ksp = kstat_create_zone((char *)module, vers, (char *)name, "misc",
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	    KSTAT_TYPE_NAMED, template_size / sizeof (kstat_named_t),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	    KSTAT_FLAG_VIRTUAL | KSTAT_FLAG_WRITABLE, zoneid)) != NULL) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
		ksp->ks_data = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
		kstat_install(ksp);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
	return (ks_data);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
 * Convenience routine to remove a kstat in specified zone with name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
 * module:0:name.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
nfsstat_zone_fini_common(zoneid_t zoneid, const char *module, int vers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
			    const char *name)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
	kstat_delete_byname_zone((char *)module, vers, (char *)name, zoneid);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
 * Server statistics.  These are defined here, rather than in the server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
 * code, so that they can be referenced before the nfssrv kmod is loaded.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
 * The "calls" counter is a Contract Private interface covered by
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
 * PSARC/2001/357.  Please contact [email protected] before
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
 * making any changes.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
static const kstat_named_t svstat_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	{ "calls",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	{ "badcalls",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
/* Points to the global zone server kstat data for all nfs versions */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
kstat_named_t *global_svstat_ptr[NFS_VERSMAX + 1];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
nfsstat_zone_init_server(zoneid_t zoneid, kstat_named_t *svstatp[])
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	int vers;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	 * first two indexes of these arrays are not used, so initialize
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	 * to NULL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	svstatp[0] = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	svstatp[1] = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	global_svstat_ptr[0] = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	global_svstat_ptr[0] = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
	for (vers = NFS_VERSION; vers <= NFS_V4; vers++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
		svstatp[vers] = nfsstat_zone_init_common(zoneid, "nfs", vers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
			    "nfs_server", svstat_tmpl, sizeof (svstat_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
		if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
			global_svstat_ptr[vers] = svstatp[vers];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
nfsstat_zone_fini_server(zoneid_t zoneid, kstat_named_t **svstatp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	int vers;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	for (vers = NFS_VERSION; vers <= NFS_V4; vers++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
		if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
			global_svstat_ptr[vers] = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
		nfsstat_zone_fini_common(zoneid, "nfs", vers, "nfs_server");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
		kmem_free(svstatp[vers], sizeof (svstat_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
 * NFSv2 client stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
static const kstat_named_t rfsreqcnt_v2_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
	{ "root",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
	{ "wrcache",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
	{ "write",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	{ "symlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
	{ "mkdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
	{ "rmdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	{ "statfs",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
nfsstat_zone_init_rfsreq_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	statsp->rfsreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	    "rfsreqcnt_v2", rfsreqcnt_v2_tmpl, sizeof (rfsreqcnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
nfsstat_zone_fini_rfsreq_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsreqcnt_v2");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
	kmem_free(statsp->rfsreqcnt_ptr, sizeof (rfsreqcnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
 * NFSv2 server stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
static const kstat_named_t rfsproccnt_v2_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
	{ "root",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	{ "wrcache",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	{ "write",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
	{ "symlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
	{ "mkdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
	{ "rmdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	{ "statfs",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
kstat_named_t *rfsproccnt_v2_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
nfsstat_zone_init_rfsproc_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
	ks_data = nfsstat_zone_init_common(zoneid, "nfs", 0, "rfsproccnt_v2",
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
	    rfsproccnt_v2_tmpl, sizeof (rfsproccnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	statsp->rfsproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
		rfsproccnt_v2_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
nfsstat_zone_fini_rfsproc_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
		rfsproccnt_v2_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsproccnt_v2");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
	kmem_free(statsp->rfsproccnt_ptr, sizeof (rfsproccnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
 * NFSv2 client ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
static const kstat_named_t aclreqcnt_v2_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
	{ "setacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	{ "getxattrdir",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
nfsstat_zone_init_aclreq_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	statsp->aclreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	    "aclreqcnt_v2", aclreqcnt_v2_tmpl, sizeof (aclreqcnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
nfsstat_zone_fini_aclreq_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclreqcnt_v2");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	kmem_free(statsp->aclreqcnt_ptr, sizeof (aclreqcnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
 * NFSv2 server ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
static const kstat_named_t aclproccnt_v2_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
	{ "setacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
	{ "getxattrdir",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
kstat_named_t *aclproccnt_v2_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
nfsstat_zone_init_aclproc_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
	ks_data = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
	    "aclproccnt_v2", aclproccnt_v2_tmpl,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
	    sizeof (aclproccnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
	statsp->aclproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
		aclproccnt_v2_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
nfsstat_zone_fini_aclproc_v2(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
		aclproccnt_v2_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclproccnt_v2");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
	kmem_free(statsp->aclproccnt_ptr, sizeof (aclproccnt_v2_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
 * NFSv3 client stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
static const kstat_named_t rfsreqcnt_v3_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
	{ "write",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
	{ "mkdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
	{ "symlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
	{ "mknod",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
	{ "rmdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
	{ "readdirplus", KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
	{ "fsstat",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
	{ "fsinfo",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
	{ "pathconf",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
	{ "commit",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
nfsstat_zone_init_rfsreq_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
	statsp->rfsreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
	    "rfsreqcnt_v3", rfsreqcnt_v3_tmpl, sizeof (rfsreqcnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
nfsstat_zone_fini_rfsreq_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsreqcnt_v3");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
	kmem_free(statsp->rfsreqcnt_ptr, sizeof (rfsreqcnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
 * NFSv3 server stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   321
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   322
static const kstat_named_t rfsproccnt_v3_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   329
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   330
	{ "write",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
	{ "mkdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
	{ "symlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
	{ "mknod",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
	{ "rmdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   337
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   338
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   339
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   340
	{ "readdirplus", KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
	{ "fsstat",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   342
	{ "fsinfo",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   343
	{ "pathconf",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   344
	{ "commit",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   345
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   346
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   347
kstat_named_t *rfsproccnt_v3_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   348
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   349
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
nfsstat_zone_init_rfsproc_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   351
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   354
	ks_data = nfsstat_zone_init_common(zoneid, "nfs", 0, "rfsproccnt_v3",
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   355
	    rfsproccnt_v3_tmpl, sizeof (rfsproccnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   356
	statsp->rfsproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   357
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   358
		rfsproccnt_v3_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   359
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   360
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   361
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   362
nfsstat_zone_fini_rfsproc_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   363
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   364
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   365
		rfsproccnt_v3_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   366
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsproccnt_v3");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   367
	kmem_free(statsp->rfsproccnt_ptr, sizeof (rfsproccnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   368
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   369
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   370
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   371
 * NFSv3 client ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   372
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   373
static const kstat_named_t aclreqcnt_v3_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   374
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   375
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   376
	{ "setacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   377
	{ "getxattrdir",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   378
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   379
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   380
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   381
nfsstat_zone_init_aclreq_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   382
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   383
	statsp->aclreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
	    "aclreqcnt_v3", aclreqcnt_v3_tmpl, sizeof (aclreqcnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   385
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   386
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   387
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   388
nfsstat_zone_fini_aclreq_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   389
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   390
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclreqcnt_v3");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   391
	kmem_free(statsp->aclreqcnt_ptr, sizeof (aclreqcnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   392
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   393
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   394
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   395
 * NFSv3 server ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   396
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   397
static const kstat_named_t aclproccnt_v3_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   398
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   399
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
	{ "setacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   401
	{ "getxattrdir",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   402
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   403
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   404
kstat_named_t *aclproccnt_v3_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   405
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   406
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
nfsstat_zone_init_aclproc_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   408
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   411
	ks_data = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   412
	    "aclproccnt_v3", aclproccnt_v3_tmpl,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   413
	    sizeof (aclproccnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   414
	statsp->aclproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   415
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   416
		aclproccnt_v3_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   417
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   418
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   419
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   420
nfsstat_zone_fini_aclproc_v3(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   421
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   423
		aclproccnt_v3_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   424
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclproccnt_v3");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   425
	kmem_free(statsp->aclproccnt_ptr, sizeof (aclproccnt_v3_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   426
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   427
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   428
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   429
 * NFSv4 client stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   430
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   431
static const kstat_named_t rfsreqcnt_v4_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   432
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   433
	{ "compound",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   434
	{ "reserved",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   435
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   436
	{ "close",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   437
	{ "commit",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   438
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   439
	{ "delegpurge",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   440
	{ "delegreturn",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   441
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   442
	{ "getfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   443
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   444
	{ "lock",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   445
	{ "lockt",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   446
	{ "locku",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   447
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   448
	{ "lookupp",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   449
	{ "nverify",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   450
	{ "open",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   451
	{ "openattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   452
	{ "open_confirm",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   453
	{ "open_downgrade",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   454
	{ "putfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   455
	{ "putpubfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   456
	{ "putrootfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   457
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   458
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   459
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   460
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   461
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   462
	{ "renew",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   463
	{ "restorefh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   464
	{ "savefh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   465
	{ "secinfo",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   466
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   467
	{ "setclientid",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   468
	{ "setclientid_confirm",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   469
	{ "verify", KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   470
	{ "write",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   471
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   472
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   473
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   474
nfsstat_zone_init_rfsreq_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   475
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   476
	statsp->rfsreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   477
	    "rfsreqcnt_v4", rfsreqcnt_v4_tmpl, sizeof (rfsreqcnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   478
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   479
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   480
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   481
nfsstat_zone_fini_rfsreq_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   482
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   483
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsreqcnt_v4");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   484
	kmem_free(statsp->rfsreqcnt_ptr, sizeof (rfsreqcnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   485
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   486
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   487
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   488
 * NFSv4 server stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   489
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   490
static const kstat_named_t rfsproccnt_v4_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   491
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   492
	{ "compound",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   493
	{ "reserved",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   494
	{ "access",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   495
	{ "close",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   496
	{ "commit",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   497
	{ "create",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   498
	{ "delegpurge",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   499
	{ "delegreturn",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   500
	{ "getattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   501
	{ "getfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   502
	{ "link",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   503
	{ "lock",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   504
	{ "lockt",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   505
	{ "locku",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   506
	{ "lookup",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   507
	{ "lookupp",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   508
	{ "nverify",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   509
	{ "open",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   510
	{ "openattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   511
	{ "open_confirm",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   512
	{ "open_downgrade",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   513
	{ "putfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   514
	{ "putpubfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   515
	{ "putrootfh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   516
	{ "read",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   517
	{ "readdir",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   518
	{ "readlink",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   519
	{ "remove",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   520
	{ "rename",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   521
	{ "renew",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   522
	{ "restorefh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   523
	{ "savefh",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   524
	{ "secinfo",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   525
	{ "setattr",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   526
	{ "setclientid",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   527
	{ "setclientid_confirm",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   528
	{ "verify",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   529
	{ "write",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   530
	{ "release_lockowner",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   531
	{ "illegal",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   532
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   533
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   534
kstat_named_t *rfsproccnt_v4_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   535
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   536
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   537
nfsstat_zone_init_rfsproc_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   538
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   539
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   540
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   541
	ks_data = nfsstat_zone_init_common(zoneid, "nfs", 0, "rfsproccnt_v4",
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   542
	    rfsproccnt_v4_tmpl, sizeof (rfsproccnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   543
	statsp->rfsproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   544
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   545
		rfsproccnt_v4_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   546
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   547
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   548
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   549
nfsstat_zone_fini_rfsproc_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   550
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   551
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   552
		rfsproccnt_v4_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   553
	nfsstat_zone_fini_common(zoneid, "nfs", 0, "rfsproccnt_v4");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   554
	kmem_free(statsp->rfsproccnt_ptr, sizeof (rfsproccnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   555
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   556
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   557
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   558
 * NFSv4 client ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   559
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   560
static const kstat_named_t aclreqcnt_v4_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   561
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   562
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   563
	{ "setacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   564
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   565
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   566
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   567
nfsstat_zone_init_aclreq_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   568
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   569
	statsp->aclreqcnt_ptr = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   570
	    "aclreqcnt_v4", aclreqcnt_v4_tmpl, sizeof (aclreqcnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   571
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   572
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   573
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   574
nfsstat_zone_fini_aclreq_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   575
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   576
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclreqcnt_v4");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   577
	kmem_free(statsp->aclreqcnt_ptr, sizeof (aclreqcnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   578
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   579
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   580
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   581
 * NFSv4 server ACL stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   582
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   583
static const kstat_named_t aclproccnt_v4_tmpl[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   584
	{ "null",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   585
	{ "getacl",	KSTAT_DATA_UINT64 },
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   586
	{ "setacl",	KSTAT_DATA_UINT64 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   587
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   588
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   589
kstat_named_t *aclproccnt_v4_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   590
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   591
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   592
nfsstat_zone_init_aclproc_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   593
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   594
	kstat_named_t *ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   595
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   596
	ks_data = nfsstat_zone_init_common(zoneid, "nfs_acl", 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   597
	    "aclproccnt_v4", aclproccnt_v4_tmpl,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   598
	    sizeof (aclproccnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   599
	statsp->aclproccnt_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   600
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   601
		aclproccnt_v4_ptr = ks_data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   602
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   603
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   604
static void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   605
nfsstat_zone_fini_aclproc_v4(zoneid_t zoneid, struct nfs_version_stats *statsp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   606
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   607
	if (zoneid == GLOBAL_ZONEID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   608
		aclproccnt_v4_ptr = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   609
	nfsstat_zone_fini_common(zoneid, "nfs_acl", 0, "aclproccnt_v4");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   610
	kmem_free(statsp->aclproccnt_ptr, sizeof (aclproccnt_v4_tmpl));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   611
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   612
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   614
 * Zone initializer callback to setup the kstats.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   615
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   616
void *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   617
nfsstat_zone_init(zoneid_t zoneid)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   618
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   619
	struct nfs_stats *nfs_stats_ptr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   620
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   621
	nfs_stats_ptr = kmem_zalloc(sizeof (*nfs_stats_ptr), KM_SLEEP);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   622
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   623
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   624
	 * Initialize all versions of the nfs_server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   625
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   626
	nfsstat_zone_init_server(zoneid, nfs_stats_ptr->nfs_stats_svstat_ptr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   627
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   628
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   629
	 * Initialize v2 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   630
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   631
	nfsstat_zone_init_rfsreq_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   632
	nfsstat_zone_init_rfsproc_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   633
	nfsstat_zone_init_aclreq_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   634
	nfsstat_zone_init_aclproc_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   635
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   636
	 * Initialize v3 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   637
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   638
	nfsstat_zone_init_rfsreq_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   639
	nfsstat_zone_init_rfsproc_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   640
	nfsstat_zone_init_aclreq_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   641
	nfsstat_zone_init_aclproc_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   642
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   643
	 * Initialize v4 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   644
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   645
	nfsstat_zone_init_rfsreq_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   646
	nfsstat_zone_init_rfsproc_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   647
	nfsstat_zone_init_aclreq_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   648
	nfsstat_zone_init_aclproc_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   649
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   650
	return (nfs_stats_ptr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   651
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   652
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   653
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   654
 * Zone destructor callback to tear down the various kstats.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   655
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   656
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   657
nfsstat_zone_fini(zoneid_t zoneid, void *data)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   658
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   659
	struct nfs_stats *nfs_stats_ptr = data;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   660
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   661
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   662
	 * Free nfs:0:nfs_server stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   663
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   664
	nfsstat_zone_fini_server(zoneid, nfs_stats_ptr->nfs_stats_svstat_ptr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   665
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   666
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   667
	 * Free v2 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   668
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   669
	nfsstat_zone_fini_rfsreq_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   670
	nfsstat_zone_fini_rfsproc_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   671
	nfsstat_zone_fini_aclreq_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   672
	nfsstat_zone_fini_aclproc_v2(zoneid, &nfs_stats_ptr->nfs_stats_v2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   673
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   674
	 * Free v3 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   675
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   676
	nfsstat_zone_fini_rfsreq_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   677
	nfsstat_zone_fini_rfsproc_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   678
	nfsstat_zone_fini_aclreq_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   679
	nfsstat_zone_fini_aclproc_v3(zoneid, &nfs_stats_ptr->nfs_stats_v3);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   680
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   681
	 * Free v4 stats
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   682
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   683
	nfsstat_zone_fini_rfsreq_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   684
	nfsstat_zone_fini_rfsproc_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   685
	nfsstat_zone_fini_aclreq_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   686
	nfsstat_zone_fini_aclproc_v4(zoneid, &nfs_stats_ptr->nfs_stats_v4);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   687
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   688
	kmem_free(nfs_stats_ptr, sizeof (*nfs_stats_ptr));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   689
}