nfs_common: add new NOTIFY4_* flags proposed in RFC8881bis

RFC8881bis adds some new flags to GET_DIR_DELEGATION that later patches
will consume. In particular, Linux nfsd can't easily provide info about
directory cookies and ordering. The new flags allow it to omit that
information.

There is some risk here -- RFC8881bis is still a working group document,
and has been for years. The changes to directory delegations have been
stable for the last year or so however, so the hope is that those parts
won't change (much).

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260616-dir-deleg-v7-3-6cbc7eac0ade@kernel.org
Signed-off-by: Chuck Lever <cel@kernel.org>
This commit is contained in:
Jeff Layton 2026-06-16 07:58:46 -04:00 committed by Chuck Lever
parent a0ac2a63d4
commit 4abf918fac
3 changed files with 35 additions and 1 deletions

View File

@ -413,7 +413,19 @@ enum notify_type4 {
NOTIFY4_REMOVE_ENTRY = 2,
NOTIFY4_ADD_ENTRY = 3,
NOTIFY4_RENAME_ENTRY = 4,
NOTIFY4_CHANGE_COOKIE_VERIFIER = 5
NOTIFY4_CHANGE_COOKIE_VERIFIER = 5,
/* Proposed in RFC8881bis */
NOTIFY4_GFLAG_EXTEND = 6,
NOTIFY4_AUFLAG_VALID = 7,
NOTIFY4_AUFLAG_USER = 8,
NOTIFY4_AUFLAG_GROUP = 9,
NOTIFY4_AUFLAG_OTHER = 10,
NOTIFY4_CHANGE_AUTH = 11,
NOTIFY4_CFLAG_ORDER = 12,
NOTIFY4_AUFLAG_GANOW = 13,
NOTIFY4_AUFLAG_GALATER = 14,
NOTIFY4_CHANGE_GA = 15,
NOTIFY4_CHANGE_AMASK = 16
};
/* Changed entry information. */

View File

@ -589,6 +589,17 @@ xdrgen_decode_notify_type4(struct xdr_stream *xdr, notify_type4 *ptr)
case NOTIFY4_ADD_ENTRY:
case NOTIFY4_RENAME_ENTRY:
case NOTIFY4_CHANGE_COOKIE_VERIFIER:
case NOTIFY4_GFLAG_EXTEND:
case NOTIFY4_AUFLAG_VALID:
case NOTIFY4_AUFLAG_USER:
case NOTIFY4_AUFLAG_GROUP:
case NOTIFY4_AUFLAG_OTHER:
case NOTIFY4_CHANGE_AUTH:
case NOTIFY4_CFLAG_ORDER:
case NOTIFY4_AUFLAG_GANOW:
case NOTIFY4_AUFLAG_GALATER:
case NOTIFY4_CHANGE_GA:
case NOTIFY4_CHANGE_AMASK:
break;
default:
return false;

View File

@ -376,6 +376,17 @@ enum notify_type4 {
NOTIFY4_ADD_ENTRY = 3,
NOTIFY4_RENAME_ENTRY = 4,
NOTIFY4_CHANGE_COOKIE_VERIFIER = 5,
NOTIFY4_GFLAG_EXTEND = 6,
NOTIFY4_AUFLAG_VALID = 7,
NOTIFY4_AUFLAG_USER = 8,
NOTIFY4_AUFLAG_GROUP = 9,
NOTIFY4_AUFLAG_OTHER = 10,
NOTIFY4_CHANGE_AUTH = 11,
NOTIFY4_CFLAG_ORDER = 12,
NOTIFY4_AUFLAG_GANOW = 13,
NOTIFY4_AUFLAG_GALATER = 14,
NOTIFY4_CHANGE_GA = 15,
NOTIFY4_CHANGE_AMASK = 16,
};
typedef enum notify_type4 notify_type4;