[RFC PATCH v2 00/11] NFS/NFSD: nfs4_acl passthru for NFSv4 reexport

Mike Snitzer
2026-02-24T19:24:39Z

Hi,

This patchset aims to enable NFS v4.1 ACLs to be fully supported from
an NFS v4.1 client to an NFSD v4.1 export that reexports NFS v4.2
filesystem which has full support for NFS v4.1 ACLs (DACL and SACL).

The first 6 patches focus on nfs4_acl passthru enablement (primarily
for NFSD), patch 7 adds 4.1 nfs4_acl passthru support (DACL and SACL),
patch 8 optimizes particular nfs4_acl passthru implementation in NFSD
to skip memcpy if nfs4_acl passthru isn't needed, patches 9-11 offer
the corresponding required NFSv4 client changes.

This work is based on the nfsd-testing branch (commit 22f4955340fc).

This patchset is marked as RFC because I expect there will be
suggestions for possible NFSD implementation improvements.

All review appreciated, thanks.
Mike

v2: rebased v1 ontop of nfsd-testing commit 22f4955340fc

Mike Snitzer (11):
exportfs: add ability to advertise NFSv4 ACL passthru support
NFSD: factor out nfsd_supports_nfs4_acl() to nfsd/acl.h
NFS/NFSD: data structure enablement for nfs4_acl passthru support
NFSD: prepare to support SETACL nfs4_acl passthru
NFSD: add NFS4 reexport support for SETACL nfs4_acl passthru
NFSD: add NFS4 reexport support for GETACL nfs4_acl passthru
NFSD: add NFS4ACL_DACL and NFS4ACL_SACL passthru support
NFSD: avoid extra nfs4_acl passthru work unless needed
NFSv4: add reexport support for SETACL nfs4_acl passthru
NFSv4: add reexport support for GETACL nfs4_acl passthru
NFSv4: set EXPORT_OP_NFSV4_ACL_PASSTHRU flag

fs/nfs/export.c | 23 ++++-
fs/nfs/nfs4proc.c | 112 +++++++++++++++-------
fs/nfs/nfs4xdr.c | 2 +-
fs/nfsd/acl.h | 11 ++-
fs/nfsd/nfs4acl.c | 69 +++++++++++++-
fs/nfsd/nfs4proc.c | 32 +++++--
fs/nfsd/nfs4xdr.c | 194 +++++++++++++++++++++++++++++++++------
fs/nfsd/nfsd.h | 5 +-
fs/nfsd/xdr4.h | 2 +
include/linux/exportfs.h | 22 +++++
include/linux/nfs4.h | 23 ++++-
include/linux/nfs_xdr.h | 11 +--
include/linux/nfsacl.h | 7 ++
13 files changed, 431 insertions(+), 82 deletions(-)

--
2.44.0