Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8217d146 authored by Anna Schumaker's avatar Anna Schumaker Committed by J. Bruce Fields
Browse files

NFSD: Add support for NFS v4.2 operation checking



The server does allow NFS over v4.2, even if it doesn't add any new
operations yet.

I also switch to using constants to represent the last operation for
each minor version since this makes the code cleaner and easier to
understand at a quick glance.

Signed-off-by: default avatarAnna Schumaker <bjschuma@netapp.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent e50a26dc
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1585,11 +1585,13 @@ static nfsd4_dec nfsd4_dec_ops[] = {
static inline bool
nfsd4_opnum_in_range(struct nfsd4_compoundargs *argp, struct nfsd4_op *op)
{
	if (op->opnum < FIRST_NFS4_OP || op->opnum > LAST_NFS4_OP)
	if (op->opnum < FIRST_NFS4_OP)
		return false;
	else if (argp->minorversion == 0 && op->opnum > OP_RELEASE_LOCKOWNER)
	else if (argp->minorversion == 0 && op->opnum > LAST_NFS40_OP)
		return false;
	else if (argp->minorversion == 1 && op->opnum > OP_RECLAIM_COMPLETE)
	else if (argp->minorversion == 1 && op->opnum > LAST_NFS41_OP)
		return false;
	else if (argp->minorversion == 2 && op->opnum > LAST_NFS42_OP)
		return false;
	return true;
}
+3 −0
Original line number Diff line number Diff line
@@ -118,6 +118,9 @@ Needs to be updated if more operations are defined in future.*/

#define FIRST_NFS4_OP	OP_ACCESS
#define LAST_NFS4_OP 	OP_RECLAIM_COMPLETE
#define LAST_NFS40_OP	OP_RELEASE_LOCKOWNER
#define LAST_NFS41_OP	OP_RECLAIM_COMPLETE
#define LAST_NFS42_OP	OP_RECLAIM_COMPLETE

enum nfsstat4 {
	NFS4_OK = 0,