public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <cel@kernel.org>
To: Mike Snitzer <snitzer@kernel.org>
Cc: Chuck Lever <chuck.lever@oracle.com>,
	Jeff Layton <jlayton@kernel.org>,
	Trond Myklebust <trond.myklebust@hammerspace.com>,
	Anna Schumaker <anna.schumaker@oracle.com>,
	linux-nfs@vger.kernel.org
Subject: Re: [RFC PATCH v2 00/11] NFS/NFSD: nfs4_acl passthru for NFSv4 reexport
Date: Wed, 25 Feb 2026 13:21:34 -0500	[thread overview]
Message-ID: <feb25fdb-0409-498c-a519-91eba0ddb4f6@kernel.org> (raw)
In-Reply-To: <aZ8pDX2LWU5Qgxku@kernel.org>

On 2/25/26 11:53 AM, Mike Snitzer wrote:
> On Tue, Feb 24, 2026 at 04:58:10PM -0500, Chuck Lever wrote:
>> Current NFSD support for DACL/SACL:
>>
>> - FATTR4_DACL (bit 58) and FATTR4_SACL (bit 59) are defined in
>>   `include/uapi/linux/nfs4.h` but not in any supported attrs mask
>> - Dispatch table (`fs/nfsd/nfs4xdr.c`):
>>       [FATTR4_DACL] = nfsd4_encode_fattr4__noop,
>>       [FATTR4_SACL] = nfsd4_encode_fattr4__noop,
>> - Not decoded in nfsd4_decode_fattr4()
>> - Not in NFSD_WRITEABLE_ATTRS_WORD1 (`fs/nfsd/nfsd.h`)
>>
>> Patch sequence might look something like:
>>
>>  1. NFSD: add acl_flags to struct nfs4_acl for nfsacl41
>>  2. NFSD: add DACL/SACL decode at correct fattr4 bit position
>>  3. NFSD: handle nfsacl41 wire format (aclflag4 + aces) in decode
>>  4. NFSD: add nfsacl41 encode for DACL/SACL responses
>>  5. NFSD: clear ACL, DACL, and SACL together in supported_attrs
>>  6. NFSD: add DACL/SACL to supported and writable attribute masks
>>
>>
>> For the API between NFSD and the local NFS client, I might favor an
>> alternative to new export operations: NFSD can set "system.nfs4_acl"
>> xattrs on NFS client inodes. The only issue there is it limits the
>> total number of bytes to 64K. But we can worry about that once the
>> DACL/SACL attributes are implemented.
> 
> This line of work _seems_ outside the scope of what is needed, so I
> won't be pursuing it unless you can help me better understand how this
> stepping stone of NFSD having native support for DACL and SACL will
> begin to offer more capable ACL pass-through support for NFS reexport.

This is not about what narrow use case Hammerspace happens to need.

Your series adds incomplete support for the DACL and SACL attributes.
That incomplete support is not sufficient for a properly compliant
server implementation, and makes that part of your proposal unacceptable
for merge because it adds significant technical debt and is likely to
result in bug reports. That's no skin off your nose, but it's
considerable effort for the community to have to deal with long-term.

Since your patches already do some of this work, I'm asking you to do
the right thing and provide a clean and complete implementation of the
feature.

If you want to look at this transactionally, I'm asking Hammerspace to
pay a small one-time price for the community's long-term support of this
feature. I regard that as very fair.


> Further review of the code provided in this series would be
> appreciated.

Adding .setacl/.getacl operations to the export_operations structure is
simply wrong, architecturally speaking. So NACK to that implementation.
All of that needs to be redone once we have agreed on a proper cross-
system API.

> I do think I've captured the essence of what is needed.

That's exactly what a prototype should do. That does not make a
prototype implementation acceptable in the long run, however.


-- 
Chuck Lever

  reply	other threads:[~2026-02-25 18:21 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-24 19:24 [RFC PATCH v2 00/11] NFS/NFSD: nfs4_acl passthru for NFSv4 reexport Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 01/11] exportfs: add ability to advertise NFSv4 ACL passthru support Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 02/11] NFSD: factor out nfsd_supports_nfs4_acl() to nfsd/acl.h Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 03/11] NFS/NFSD: data structure enablement for nfs4_acl passthru support Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 04/11] NFSD: prepare to support SETACL nfs4_acl passthru Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 05/11] NFSD: add NFS4 reexport support for " Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 06/11] NFSD: add NFS4 reexport support for GETACL " Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 07/11] NFSD: add NFS4ACL_DACL and NFS4ACL_SACL passthru support Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 08/11] NFSD: avoid extra nfs4_acl passthru work unless needed Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 09/11] NFSv4: add reexport support for SETACL nfs4_acl passthru Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 10/11] NFSv4: add reexport support for GETACL " Mike Snitzer
2026-02-24 19:24 ` [RFC PATCH v2 11/11] NFSv4: set EXPORT_OP_NFSV4_ACL_PASSTHRU flag Mike Snitzer
2026-02-24 21:58 ` [RFC PATCH v2 00/11] NFS/NFSD: nfs4_acl passthru for NFSv4 reexport Chuck Lever
2026-02-25 16:53   ` Mike Snitzer
2026-02-25 18:21     ` Chuck Lever [this message]
2026-03-10 13:26 ` Christoph Hellwig
2026-03-10 14:53   ` Trond Myklebust
2026-03-10 14:58     ` Christoph Hellwig
2026-03-10 16:41       ` Chuck Lever
2026-03-10 14:59     ` Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=feb25fdb-0409-498c-a519-91eba0ddb4f6@kernel.org \
    --to=cel@kernel.org \
    --cc=anna.schumaker@oracle.com \
    --cc=chuck.lever@oracle.com \
    --cc=jlayton@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=snitzer@kernel.org \
    --cc=trond.myklebust@hammerspace.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox