From 348d9b567e3912d09ec48daedcf3ed1d4ceb3b75 Mon Sep 17 00:00:00 2001 From: Rick Macklem Date: Wed, 4 Dec 2019 23:24:40 +0000 Subject: [PATCH] Add some definitions for NFSv4.2 which will be used by subsequent commits. This is a preliminary commit of NFSv4.2 definitions that will be used by subsequent commits which adds NFSv4.2 support to the NFS client and server. There will be a series of these preliminary commits that will prepare for a major commit of the NFSv4.2 client/server changes currently found in subversion under projects/nfsv42/sys. --- sys/fs/nfs/nfsproto.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/sys/fs/nfs/nfsproto.h b/sys/fs/nfs/nfsproto.h index 2e9f6d7b9db..2c226c01876 100644 --- a/sys/fs/nfs/nfsproto.h +++ b/sys/fs/nfs/nfsproto.h @@ -78,6 +78,7 @@ #define NFS_FABLKSIZE 512 /* Size in bytes of a block wrt fa_blocks */ #define NFSV4_MINORVERSION 0 /* V4 Minor version */ #define NFSV41_MINORVERSION 1 /* V4 Minor version */ +#define NFSV42_MINORVERSION 2 /* V4 Minor version */ #define NFSV4_CBVERS 1 /* V4 CB Version */ #define NFSV41_CBVERS 4 /* V4.1 CB Version */ #define NFSV4_SMALLSTR 50 /* Strings small enough for stack */ @@ -214,6 +215,22 @@ #define NFSERR_RETURNCONFLICT 10086 #define NFSERR_DELEGREVOKED 10087 +/* NFSv4.2 specific errors. */ +#define NFSERR_PARTNERNOTSUPP 10088 +#define NFSERR_PARTNERNOAUTH 10089 +#define NFSERR_UNIONNOTSUPP 10090 +#define NFSERR_OFFLOADDENIED 10091 +#define NFSERR_WRONGLFS 10092 +#define NFSERR_BADLABEL 10093 +#define NFSERR_OFFLOADNOREQS 10094 + +/* NFSv4.2 Extended Attribute errors. */ +#define NFSERR_NOXATTR 10095 +#define NFSERR_XATTR2BIG 10096 + +/* Maximum value of all the NFS error values. */ +#define NFSERR_MAXERRVAL NFSERR_XATTR2BIG + #define NFSERR_STALEWRITEVERF 30001 /* Fake return for nfs_commit() */ #define NFSERR_DONTREPLY 30003 /* Don't process request */ #define NFSERR_RETVOID 30004 /* Return void, not error */ @@ -364,6 +381,24 @@ */ #define NFSV41_NPROCS 56 +/* Additional procedures for NFSv4.2. */ +#define NFSPROC_IOADVISE 56 +#define NFSPROC_ALLOCATE 57 +#define NFSPROC_COPY 58 +#define NFSPROC_SEEK 59 +#define NFSPROC_SEEKDS 60 + +/* and the ones for the optional Extended attribute support (RFC-8276). */ +#define NFSPROC_GETEXTATTR 61 +#define NFSPROC_SETEXTATTR 62 +#define NFSPROC_RMEXTATTR 63 +#define NFSPROC_LISTEXTATTR 64 + +/* + * Must be defined as one higher than the last NFSv4.2 Proc# above. + */ +#define NFSV42_NPROCS 65 + #endif /* NFS_V3NPROCS */ /* @@ -594,6 +629,11 @@ #define NFSACCESS_DELETE 0x10 #define NFSACCESS_EXECUTE 0x20 +/* Additional Extended Attribute access bits RFC-8276. */ +#define NFSACCESS_XAREAD 0x40 +#define NFSACCESS_XAWRITE 0x80 +#define NFSACCESS_XALIST 0x100 + #define NFSWRITE_UNSTABLE 0 #define NFSWRITE_DATASYNC 1 #define NFSWRITE_FILESYNC 2