linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chuck Lever <cel@kernel.org>
To: <linux-nfs@vger.kernel.org>
Cc: Calum Mackay <calum.mackay@oracle.com>,
	aurelien.couderc2002@gmail.com,
	Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v2 0/9] pynfs tests for setting ACL+MODE
Date: Tue, 25 Nov 2025 14:49:25 -0500	[thread overview]
Message-ID: <20251125194936.770792-1-cel@kernel.org> (raw)

From: Chuck Lever <chuck.lever@oracle.com>

There are plenty of corner cases when an NFSv4 client requests
setting an NFSv4 ACL and POSIX mode bits in the a single SETATTR
request. It's even worse for NFS server implementations that have
to translate NFSv4 ACLs to POSIX ACLs.

Note that the in-kernel Linux NFS client itself does not support 
NFSv4 ACLs since Linux is a POSIX ACL ecosystem. I believe it will
never send an OPEN(create) or SETATTR that sets an NFSv4 ACL and
mode bits simultaneously, relying on only user space tooling to set
the ACL. So we must depend on only pynfs for testing this particular
NFSD facility.

pynfs didn't have many tests in this particular category when I set
out to troubleshoot a recently reported ACL+MODE bug in NFSD. So
I've written a handful to exercise this specific case.

Changes since RFC:
* De-duplicate code shared between NFSv4.0 and NFSv4.1
* Remove named principals tests for now
* Replace incorrect usage of binary strings
* Add missing patch descriptions

Chuck Lever (9):
  Add helper to report unsupported protocol features
  Add helper to format attribute bitmaps
  Add a helper to compute POSIX mode bits from NFSv4 ACLs
  Add access_mask_to_str() helper to nfs4.0/nfs4acl.py
  Add make_test_acl() helper to nfs4acl modules
  Add verify_acl() helper to nfs4acl modules
  Add verify_mode_and_acl() helper to nfs4acl modules
  Add tests for SETATTR with MODE and ACL
  Add tests for OPEN(create) with ACLs

 nfs4.0/nfs4acl.py                   | 180 ++++++
 nfs4.0/servertests/st_setattr.py    | 863 +++++++++++++++++++++++++++-
 nfs4.1/nfs4acl.py                   |   1 +
 nfs4.1/nfs4lib.py                   |   8 +
 nfs4.1/server41tests/environment.py |   3 +
 nfs4.1/server41tests/st_open.py     | 723 ++++++++++++++++++++++-
 6 files changed, 1774 insertions(+), 4 deletions(-)
 create mode 120000 nfs4.1/nfs4acl.py

-- 
2.51.1


             reply	other threads:[~2025-11-25 19:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-25 19:49 Chuck Lever [this message]
2025-11-25 19:49 ` [PATCH v2 1/9] Add helper to report unsupported protocol features Chuck Lever
2025-11-25 19:49 ` [PATCH v2 2/9] Add helper to format attribute bitmaps Chuck Lever
2025-11-25 19:49 ` [PATCH v2 3/9] Add a helper to compute POSIX mode bits from NFSv4 ACLs Chuck Lever
2025-11-25 19:49 ` [PATCH v2 4/9] Add access_mask_to_str() helper to nfs4.0/nfs4acl.py Chuck Lever
2025-11-25 19:49 ` [PATCH v2 5/9] Add make_test_acl() helper to nfs4acl modules Chuck Lever
2025-11-25 19:49 ` [PATCH v2 6/9] Add verify_acl() " Chuck Lever
2025-11-25 19:49 ` [PATCH v2 7/9] Add verify_mode_and_acl() " Chuck Lever
2025-11-25 19:49 ` [PATCH v2 8/9] Add tests for SETATTR with MODE and ACL Chuck Lever
2025-11-25 19:49 ` [PATCH v2 9/9] Add tests for OPEN(create) with ACLs 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=20251125194936.770792-1-cel@kernel.org \
    --to=cel@kernel.org \
    --cc=aurelien.couderc2002@gmail.com \
    --cc=calum.mackay@oracle.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).