diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-05-15 19:33:59 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-05-15 19:33:59 +0000 |
commit | 35faa7fd183b522ed6ca1364a393d6c71c8b1519 (patch) | |
tree | 481b184baa10b48606e0b7f85b88eaf9eae5b432 | |
parent | cd869a4a4264d97fea3fa87557bf8d06e7c86e31 (diff) | |
download | FreeBSD-src-35faa7fd183b522ed6ca1364a393d6c71c8b1519.zip FreeBSD-src-35faa7fd183b522ed6ca1364a393d6c71c8b1519.tar.gz |
Move the nfsstat structure and proc/op number definitions on the
experimental nfs subsystem from sys/fs/nfs/nfs.h and sys/fs/nfs/nfsproto.h
to sys/fs/nfs/nfsport.h and rename nfsstat to ext_nfsstat. This was done
so that src/usr.bin/nfsstat.c could use it alongside the regular nfs
include files and struct nfsstat.
Approved by: kib (mentor)
-rw-r--r-- | sys/fs/nfs/nfs.h | 55 | ||||
-rw-r--r-- | sys/fs/nfs/nfsport.h | 176 | ||||
-rw-r--r-- | sys/fs/nfs/nfsproto.h | 98 |
3 files changed, 177 insertions, 152 deletions
diff --git a/sys/fs/nfs/nfs.h b/sys/fs/nfs/nfs.h index 14656a5..250ce1a 100644 --- a/sys/fs/nfs/nfs.h +++ b/sys/fs/nfs/nfs.h @@ -325,61 +325,6 @@ struct nfsreferral { #define NFSID_DELGROUPNAME 0x0100 /* - * Stats structure - */ -struct nfsstats { - int attrcache_hits; - int attrcache_misses; - int lookupcache_hits; - int lookupcache_misses; - int direofcache_hits; - int direofcache_misses; - int accesscache_hits; - int accesscache_misses; - int biocache_reads; - int read_bios; - int read_physios; - int biocache_writes; - int write_bios; - int write_physios; - int biocache_readlinks; - int readlink_bios; - int biocache_readdirs; - int readdir_bios; - int rpccnt[NFS_NPROCS]; - int rpcretries; - int srvrpccnt[NFSV4OP_NOPS + NFSV4OP_FAKENOPS]; - int srvrpc_errs; - int srv_errs; - int rpcrequests; - int rpctimeouts; - int rpcunexpected; - int rpcinvalid; - int srvcache_inproghits; - int srvcache_idemdonehits; - int srvcache_nonidemdonehits; - int srvcache_misses; - int srvcache_tcppeak; - int srvcache_size; - int srvclients; - int srvopenowners; - int srvopens; - int srvlockowners; - int srvlocks; - int srvdelegates; - int cbrpccnt[NFSV4OP_CBNOPS]; - int clopenowners; - int clopens; - int cllockowners; - int cllocks; - int cldelegates; - int cllocalopenowners; - int cllocalopens; - int cllocallockowners; - int cllocallocks; -}; - -/* * fs.nfs sysctl(3) identifiers */ #define NFS_NFSSTATS 1 /* struct: struct nfsstats */ diff --git a/sys/fs/nfs/nfsport.h b/sys/fs/nfs/nfsport.h index 5faade9..5be6587 100644 --- a/sys/fs/nfs/nfsport.h +++ b/sys/fs/nfs/nfsport.h @@ -186,6 +186,182 @@ */ #define NFSMUTEX_T struct mtx +#endif /* _KERNEL */ + +/* + * NFSv4 Operation numbers. + */ +#define NFSV4OP_ACCESS 3 +#define NFSV4OP_CLOSE 4 +#define NFSV4OP_COMMIT 5 +#define NFSV4OP_CREATE 6 +#define NFSV4OP_DELEGPURGE 7 +#define NFSV4OP_DELEGRETURN 8 +#define NFSV4OP_GETATTR 9 +#define NFSV4OP_GETFH 10 +#define NFSV4OP_LINK 11 +#define NFSV4OP_LOCK 12 +#define NFSV4OP_LOCKT 13 +#define NFSV4OP_LOCKU 14 +#define NFSV4OP_LOOKUP 15 +#define NFSV4OP_LOOKUPP 16 +#define NFSV4OP_NVERIFY 17 +#define NFSV4OP_OPEN 18 +#define NFSV4OP_OPENATTR 19 +#define NFSV4OP_OPENCONFIRM 20 +#define NFSV4OP_OPENDOWNGRADE 21 +#define NFSV4OP_PUTFH 22 +#define NFSV4OP_PUTPUBFH 23 +#define NFSV4OP_PUTROOTFH 24 +#define NFSV4OP_READ 25 +#define NFSV4OP_READDIR 26 +#define NFSV4OP_READLINK 27 +#define NFSV4OP_REMOVE 28 +#define NFSV4OP_RENAME 29 +#define NFSV4OP_RENEW 30 +#define NFSV4OP_RESTOREFH 31 +#define NFSV4OP_SAVEFH 32 +#define NFSV4OP_SECINFO 33 +#define NFSV4OP_SETATTR 34 +#define NFSV4OP_SETCLIENTID 35 +#define NFSV4OP_SETCLIENTIDCFRM 36 +#define NFSV4OP_VERIFY 37 +#define NFSV4OP_WRITE 38 +#define NFSV4OP_RELEASELCKOWN 39 + +/* + * Must be one greater than the last Operation#. + */ +#define NFSV4OP_NOPS 40 + +/* + * Fake NFSV4OP_xxx used for nfsstat. Start at NFSV4OP_NOPS. + */ +#define NFSV4OP_SYMLINK (NFSV4OP_NOPS) +#define NFSV4OP_MKDIR (NFSV4OP_NOPS + 1) +#define NFSV4OP_RMDIR (NFSV4OP_NOPS + 2) +#define NFSV4OP_READDIRPLUS (NFSV4OP_NOPS + 3) +#define NFSV4OP_MKNOD (NFSV4OP_NOPS + 4) +#define NFSV4OP_FSSTAT (NFSV4OP_NOPS + 5) +#define NFSV4OP_FSINFO (NFSV4OP_NOPS + 6) +#define NFSV4OP_PATHCONF (NFSV4OP_NOPS + 7) +#define NFSV4OP_V3CREATE (NFSV4OP_NOPS + 8) + +/* + * This is the count of the fake operations listed above. + */ +#define NFSV4OP_FAKENOPS 9 + +/* + * and the Callback OPs + */ +#define NFSV4OP_CBGETATTR 3 +#define NFSV4OP_CBRECALL 4 + +/* + * Must be one greater than the last Callback Operation#. + */ +#define NFSV4OP_CBNOPS 5 + +/* + * The lower numbers -> 21 are used by NFSv2 and v3. These define higher + * numbers used by NFSv4. + * NFS_V3NPROCS is one greater than the last V3 op and NFS_NPROCS is + * one greater than the last number. + */ +#define NFS_V3NPROCS 22 + +#define NFSPROC_LOOKUPP 22 +#define NFSPROC_SETCLIENTID 23 +#define NFSPROC_SETCLIENTIDCFRM 24 +#define NFSPROC_LOCK 25 +#define NFSPROC_LOCKU 26 +#define NFSPROC_OPEN 27 +#define NFSPROC_CLOSE 28 +#define NFSPROC_OPENCONFIRM 29 +#define NFSPROC_LOCKT 30 +#define NFSPROC_OPENDOWNGRADE 31 +#define NFSPROC_RENEW 32 +#define NFSPROC_PUTROOTFH 33 +#define NFSPROC_RELEASELCKOWN 34 +#define NFSPROC_DELEGRETURN 35 +#define NFSPROC_RETDELEGREMOVE 36 +#define NFSPROC_RETDELEGRENAME1 37 +#define NFSPROC_RETDELEGRENAME2 38 +#define NFSPROC_GETACL 39 +#define NFSPROC_SETACL 40 + +/* + * Must be defined as one higher than the last Proc# above. + */ +#define NFSV4_NPROCS 41 + +/* + * Stats structure + */ +struct ext_nfsstats { + int attrcache_hits; + int attrcache_misses; + int lookupcache_hits; + int lookupcache_misses; + int direofcache_hits; + int direofcache_misses; + int accesscache_hits; + int accesscache_misses; + int biocache_reads; + int read_bios; + int read_physios; + int biocache_writes; + int write_bios; + int write_physios; + int biocache_readlinks; + int readlink_bios; + int biocache_readdirs; + int readdir_bios; + int rpccnt[NFSV4_NPROCS]; + int rpcretries; + int srvrpccnt[NFSV4OP_NOPS + NFSV4OP_FAKENOPS]; + int srvrpc_errs; + int srv_errs; + int rpcrequests; + int rpctimeouts; + int rpcunexpected; + int rpcinvalid; + int srvcache_inproghits; + int srvcache_idemdonehits; + int srvcache_nonidemdonehits; + int srvcache_misses; + int srvcache_tcppeak; + int srvcache_size; + int srvclients; + int srvopenowners; + int srvopens; + int srvlockowners; + int srvlocks; + int srvdelegates; + int cbrpccnt[NFSV4OP_CBNOPS]; + int clopenowners; + int clopens; + int cllockowners; + int cllocks; + int cldelegates; + int cllocalopenowners; + int cllocalopens; + int cllocallockowners; + int cllocallocks; +}; + +#ifdef _KERNEL +/* + * Define the ext_nfsstats as nfsstats for the kernel code. + */ +#define nfsstats ext_nfsstats + +/* + * Define NFS_NPROCS as NFSV4_NPROCS for the experimental kernel code. + */ +#define NFS_NPROCS NFSV4_NPROCS + #include <fs/nfs/nfskpiport.h> #include <fs/nfs/nfsdport.h> #include <fs/nfs/rpcv2.h> diff --git a/sys/fs/nfs/nfsproto.h b/sys/fs/nfs/nfsproto.h index a092790..f007b70 100644 --- a/sys/fs/nfs/nfsproto.h +++ b/sys/fs/nfs/nfsproto.h @@ -218,36 +218,6 @@ #define NFSPROC_COMMIT 21 /* - * These cover all the procedures for V2 and 3. The higher numbers are - * used to reference other V4 ops. - * NFS_V3NPROCS is one greater than the last V3 op and NFS_NPROCS is - * one greater than the last number. - */ -#define NFS_V3NPROCS 22 - -#define NFSPROC_LOOKUPP 22 -#define NFSPROC_SETCLIENTID 23 -#define NFSPROC_SETCLIENTIDCFRM 24 -#define NFSPROC_LOCK 25 -#define NFSPROC_LOCKU 26 -#define NFSPROC_OPEN 27 -#define NFSPROC_CLOSE 28 -#define NFSPROC_OPENCONFIRM 29 -#define NFSPROC_LOCKT 30 -#define NFSPROC_OPENDOWNGRADE 31 -#define NFSPROC_RENEW 32 -#define NFSPROC_PUTROOTFH 33 -#define NFSPROC_RELEASELCKOWN 34 -#define NFSPROC_DELEGRETURN 35 -#define NFSPROC_RETDELEGREMOVE 36 -#define NFSPROC_RETDELEGRENAME1 37 -#define NFSPROC_RETDELEGRENAME2 38 -#define NFSPROC_GETACL 39 -#define NFSPROC_SETACL 40 - -#define NFS_NPROCS 41 - -/* * NFSPROC_NOOP is a fake op# that can't be the same as any V2/3/4 Procedure * or Operation#. Since the NFS V4 Op #s go higher, use NFSV4OP_NOPS, which * is one greater than the highest Op#. @@ -276,78 +246,12 @@ #define NFSV2PROC_STATFS 17 /* - * V4 Procedure and suboperation numbers + * V4 Procedure numbers */ #define NFSV4PROC_COMPOUND 1 #define NFSV4PROC_CBNULL 0 #define NFSV4PROC_CBCOMPOUND 1 -#define NFSV4OP_ACCESS 3 -#define NFSV4OP_CLOSE 4 -#define NFSV4OP_COMMIT 5 -#define NFSV4OP_CREATE 6 -#define NFSV4OP_DELEGPURGE 7 -#define NFSV4OP_DELEGRETURN 8 -#define NFSV4OP_GETATTR 9 -#define NFSV4OP_GETFH 10 -#define NFSV4OP_LINK 11 -#define NFSV4OP_LOCK 12 -#define NFSV4OP_LOCKT 13 -#define NFSV4OP_LOCKU 14 -#define NFSV4OP_LOOKUP 15 -#define NFSV4OP_LOOKUPP 16 -#define NFSV4OP_NVERIFY 17 -#define NFSV4OP_OPEN 18 -#define NFSV4OP_OPENATTR 19 -#define NFSV4OP_OPENCONFIRM 20 -#define NFSV4OP_OPENDOWNGRADE 21 -#define NFSV4OP_PUTFH 22 -#define NFSV4OP_PUTPUBFH 23 -#define NFSV4OP_PUTROOTFH 24 -#define NFSV4OP_READ 25 -#define NFSV4OP_READDIR 26 -#define NFSV4OP_READLINK 27 -#define NFSV4OP_REMOVE 28 -#define NFSV4OP_RENAME 29 -#define NFSV4OP_RENEW 30 -#define NFSV4OP_RESTOREFH 31 -#define NFSV4OP_SAVEFH 32 -#define NFSV4OP_SECINFO 33 -#define NFSV4OP_SETATTR 34 -#define NFSV4OP_SETCLIENTID 35 -#define NFSV4OP_SETCLIENTIDCFRM 36 -#define NFSV4OP_VERIFY 37 -#define NFSV4OP_WRITE 38 -#define NFSV4OP_RELEASELCKOWN 39 - -/* - * and the Callback OPs - */ -#define NFSV4OP_CBGETATTR 3 -#define NFSV4OP_CBRECALL 4 - -/* - * NFSV4OP_NOPS is one greater than the largest V4 Op#. (Used for sizing - * arrays, etc.) - */ -#define NFSV4OP_NOPS 40 -#define NFSV4OP_CBNOPS 5 - -/* - * Fake NFSV4OP_xxx used for nfsstat. Start at NFSV4OP_NOPS. - */ -#define NFSV4OP_SYMLINK (NFSV4OP_NOPS) -#define NFSV4OP_MKDIR (NFSV4OP_NOPS + 1) -#define NFSV4OP_RMDIR (NFSV4OP_NOPS + 2) -#define NFSV4OP_READDIRPLUS (NFSV4OP_NOPS + 3) -#define NFSV4OP_MKNOD (NFSV4OP_NOPS + 4) -#define NFSV4OP_FSSTAT (NFSV4OP_NOPS + 5) -#define NFSV4OP_FSINFO (NFSV4OP_NOPS + 6) -#define NFSV4OP_PATHCONF (NFSV4OP_NOPS + 7) -#define NFSV4OP_V3CREATE (NFSV4OP_NOPS + 8) - -#define NFSV4OP_FAKENOPS 9 - /* * Constants used by the Version 3 and 4 protocols for various RPCs */ |