From: Prabhakar Pujeri <prabhakar.pujeri@dell.com>
To: steved@redhat.com
Cc: Prabhakar Pujeri <prabhakar.pujeri@dell.com>,
cel@kernel.org, jlayton@kernel.org, linux-nfs@vger.kernel.org
Subject: [PATCH v2 0/2] nfsdctl: list NFSv4 clients
Date: Mon, 31 Aug 2026 09:27:39 +0000 [thread overview]
Message-ID: <cover.1787988918.git.prabhakar.pujeri@dell.com> (raw)
Add the userspace consumer for the companion NFSD Netlink client-state v2
series, whose cover Message-ID is:
<cover.1787988917.git.prabhakar.pujeri@dell.com>
The first patch adds a privileged `nfsdctl clients` table for basic client
identity, address, lease, confirmation, reclaim, and callback state. The
second adds session and stateid record counts.
Attribute presence remains the compatibility boundary. Missing count
attributes are displayed as dashes. The bundled UAPI header permits building
before the new kernel header is installed, while the configure probe selects
a system header only when it contains the complete count extension.
Changes since v1:
- decode separate IPv4/IPv6 address, port, and scope-ID attributes instead
of raw sockaddr data
- detect NLM_F_DUMP_INTR on client records and NLMSG_DONE, and fail with a
retry diagnostic rather than displaying a potentially inconsistent list
- decode variable-width 32-bit or 64-bit uint count attributes and display
counts as uint64_t values
- drop the companion grace-status patch with the kernel-side grace patch
Validation performed:
- strict checkpatch on both patches: no errors, warnings, or checks
- full nfs-utils build and `make check` using the bundled UAPI header: no
failures or errors; one environment-dependent test skipped
- full build and `make check` against headers_install from the final kernel:
no failures or errors; one environment-dependent test skipped
- bundled and kernel-source NFSD UAPI headers compared byte-for-byte
- two independent two-vCPU QEMU boots of the exact companion kernel
- each `nfsdctl clients` run displayed the expected NFSv4.2 client,
loopback peer, lease, callback/reclaim state, one session, one open,
one lock, one delegation, and zero layouts
- nfsdctl output agreed with raw Netlink and /proc/fs/nfsd/clients state
Development assistance: an LLM assisted with review analysis, implementation,
commit-message drafting, and test-harness development.
Assisted-by: LLM
v1: https://lore.kernel.org/r/cover.1787639206.git.prabhakar.pujeri@dell.com
Prabhakar Pujeri (2):
nfsdctl: add a command to list NFSv4 clients
nfsdctl: display per-client NFSv4 state usage
configure.ac | 2 +-
support/include/nfsd_netlink.h | 43 +++++
utils/nfsdctl/nfsdctl.8 | 21 +++
utils/nfsdctl/nfsdctl.adoc | 14 ++
utils/nfsdctl/nfsdctl.c | 310 +++++++++++++++++++++++++++++++++
5 files changed, 389 insertions(+), 1 deletion(-)
base-commit: 67ed1bdb1af1c70a5fd3b377a997401b7676b827
--
2.54.0
next reply other threads:[~2026-08-31 9:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 9:27 Prabhakar Pujeri [this message]
2026-08-31 9:27 ` [PATCH v2 1/2] nfsdctl: add a command to list NFSv4 clients Prabhakar Pujeri
2026-08-31 9:27 ` [PATCH v2 2/2] nfsdctl: display per-client NFSv4 state usage Prabhakar Pujeri
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=cover.1787988918.git.prabhakar.pujeri@dell.com \
--to=prabhakar.pujeri@dell.com \
--cc=cel@kernel.org \
--cc=jlayton@kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=steved@redhat.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