Commit c1326210 authored by Frank van der Linden's avatar Frank van der Linden Committed by Chuck Lever
Browse files

nfs,nfsd: NFSv4.2 extended attribute protocol definitions



Add definitions for the new operations, errors and flags as defined
in RFC 8276 (File System Extended Attributes in NFSv4).

Signed-off-by: default avatarFrank van der Linden <fllinden@amazon.com>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 11ba4688
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -150,6 +150,12 @@ enum nfs_opnum4 {
	OP_WRITE_SAME = 70,
	OP_CLONE = 71,

	/* xattr support (RFC8726) */
	OP_GETXATTR                = 72,
	OP_SETXATTR                = 73,
	OP_LISTXATTRS              = 74,
	OP_REMOVEXATTR             = 75,

	OP_ILLEGAL = 10044,
};

@@ -280,6 +286,10 @@ enum nfsstat4 {
	NFS4ERR_WRONG_LFS = 10092,
	NFS4ERR_BADLABEL = 10093,
	NFS4ERR_OFFLOAD_NO_REQS = 10094,

	/* xattr (RFC8276) */
	NFS4ERR_NOXATTR        = 10095,
	NFS4ERR_XATTR2BIG      = 10096,
};

static inline bool seqid_mutating_err(u32 err)
@@ -452,6 +462,7 @@ enum change_attr_type4 {
#define FATTR4_WORD2_CHANGE_ATTR_TYPE	(1UL << 15)
#define FATTR4_WORD2_SECURITY_LABEL     (1UL << 16)
#define FATTR4_WORD2_MODE_UMASK		(1UL << 17)
#define FATTR4_WORD2_XATTR_SUPPORT	(1UL << 18)

/* MDS threshold bitmap bits */
#define THRESHOLD_RD                    (1UL << 0)
@@ -700,4 +711,13 @@ struct nl4_server {
		struct nfs42_netaddr	nl4_addr; /* NL4_NETADDR */
	} u;
};

/*
 * Options for setxattr. These match the flags for setxattr(2).
 */
enum nfs4_setxattr_options {
	SETXATTR4_EITHER	= 0,
	SETXATTR4_CREATE	= 1,
	SETXATTR4_REPLACE	= 2,
};
#endif
+3 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@
#define NFS4_ACCESS_EXTEND      0x0008
#define NFS4_ACCESS_DELETE      0x0010
#define NFS4_ACCESS_EXECUTE     0x0020
#define NFS4_ACCESS_XAREAD      0x0040
#define NFS4_ACCESS_XAWRITE     0x0080
#define NFS4_ACCESS_XALIST      0x0100

#define NFS4_FH_PERSISTENT		0x0000
#define NFS4_FH_NOEXPIRE_WITH_OPEN	0x0001