diff --git a/nfs-utils-2.8.3-nfsdclnts-fix-display-of-stateids-where-the-kernel-d.patch b/nfs-utils-2.8.3-nfsdclnts-fix-display-of-stateids-where-the-kernel-d.patch new file mode 100644 index 0000000..3cff913 --- /dev/null +++ b/nfs-utils-2.8.3-nfsdclnts-fix-display-of-stateids-where-the-kernel-d.patch @@ -0,0 +1,39 @@ +From b59edc685f77d7c282a1dfca4187ebb703590cb6 Mon Sep 17 00:00:00 2001 +From: Frank Sorenson +Date: Fri, 6 Mar 2026 17:04:20 -0500 +Subject: [nfs-utils PATCH] nfsdclnts: fix display of stateids where the kernel + doesn't provide the superblock + +If the stateid's file can't be found, the kernel will skip printing +the superblock and filename in the 'states' procfile. When this +happens, nfsdclnts crashes trying to reference the non-existent +superblock key while getting the inode. + +Fix this by setting the inode field to 'N/A' when the superblock +isn't present, as is done with other fields which may be missing. + +Signed-off-by: Frank Sorenson +Signed-off-by: Steve Dickson +--- + tools/nfsdclnts/nfsdclnts.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/tools/nfsdclnts/nfsdclnts.py b/tools/nfsdclnts/nfsdclnts.py +index b7280f2c..183a02ee 100755 +--- a/tools/nfsdclnts/nfsdclnts.py ++++ b/tools/nfsdclnts/nfsdclnts.py +@@ -87,7 +87,10 @@ def printer(data_list, argument): + client_info = file_to_dict(client_info_path) + for i in data_list: + for key in i: +- inode = i[key]['superblock'].split(':')[-1] ++ try: ++ inode = i[key]['superblock'].split(':')[-1] ++ except: ++ inode = 'N/A' + # The ip address is quoted, so we dequote it. + try: + client_ip = client_info['address'][1:-1] +-- +2.52.0 + diff --git a/nfs-utils-2.8.3-nfsdctl-ignore-ipv6-listener-creation-error.patch b/nfs-utils-2.8.3-nfsdctl-ignore-ipv6-listener-creation-error.patch new file mode 100644 index 0000000..da386d9 --- /dev/null +++ b/nfs-utils-2.8.3-nfsdctl-ignore-ipv6-listener-creation-error.patch @@ -0,0 +1,63 @@ +From 3b7de50fe8f59c64762a015693b705db5d0f15e7 Mon Sep 17 00:00:00 2001 +From: Olga Kornievskaia +Date: Sun, 18 Jan 2026 14:30:45 -0500 +Subject: [nfs-utils PATCH] nfsdctl: ignore ipv6 listener creation error + +If ipv6 is not supported by the kernel and during the nfsd start +we are trying to create an ipv6 listener, ignore the error (this +restores how nfsd handled this failure). + +Fixes: 8b02f0d5590e ("nfsdctl: cleanup listeners if some failed") +Signed-off-by: Olga Kornievskaia +Signed-off-by: Steve Dickson +--- + utils/nfsdctl/nfsdctl.c | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/utils/nfsdctl/nfsdctl.c b/utils/nfsdctl/nfsdctl.c +index e7a0e124..4a6ba1d6 100644 +--- a/utils/nfsdctl/nfsdctl.c ++++ b/utils/nfsdctl/nfsdctl.c +@@ -967,6 +967,17 @@ static void print_listeners(void) + } + } + ++static bool ipv6_is_enabled(void) ++{ ++ int s; ++ ++ s = socket(AF_INET6, SOCK_STREAM, 0); ++ if (s < 0) ++ return false; ++ close(s); ++ return true; ++} ++ + /* + * Format is <+/->:
:port + * +@@ -1081,7 +1092,8 @@ static int update_listeners(const char *str) + continue; + case AF_INET6: + if (r6->sin6_port != l6->sin6_port || +- memcmp(&r6->sin6_addr, &l6->sin6_addr, sizeof(l6->sin6_addr))) ++ memcmp(&r6->sin6_addr, &l6->sin6_addr, sizeof(l6->sin6_addr)) || ++ !ipv6_is_enabled()) + continue; + default: + +@@ -1127,6 +1139,11 @@ static int set_listeners(struct nl_sock *sock) + struct server_socket *sock = &nfsd_sockets[i]; + struct nlattr *a; + ++ if (sock->ss.ss_family == AF_INET6 && !ipv6_is_enabled()) { ++ xlog(L_WARNING, "IPv6 isn't enabled, skip IPv6 " ++ "listener\n"); ++ continue; ++ } + if (sock->ss.ss_family == 0) + break; + +-- +2.52.0 + diff --git a/nfs-utils.spec b/nfs-utils.spec index f26c613..37d4dd5 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser Name: nfs-utils URL: http://linux-nfs.org/ Version: 2.8.3 -Release: 5%{?dist} +Release: 6%{?dist} Epoch: 1 # group all 32bit related archs @@ -39,6 +39,12 @@ Patch015: nfs-utils-2.8.3-mountd-Separate-lookup-of-the-exported-directory-and.p Patch016: nfs-utils-2.8.3-support-Add-a-mini-library-to-extract-and-apply-RPC-.patch Patch017: nfs-utils-2.8.3-Fix-access-checks-when-mounting-subdirectories-in-NF.patch +# +# RHEL 10.3 +# +Patch018: nfs-utils-2.8.3-nfsdctl-ignore-ipv6-listener-creation-error.patch +Patch019: nfs-utils-2.8.3-nfsdclnts-fix-display-of-stateids-where-the-kernel-d.patch + Patch100: nfs-utils-1.2.1-statdpath-man.patch Patch102: nfs-utils-1.2.5-idmap-errmsg.patch Patch103: nfs-utils-2.3.1-systemd-gssproxy-restart.patch @@ -450,6 +456,10 @@ rm -rf /etc/systemd/system/rpc-*.requires %{_mandir}/*/nfsiostat.8.gz %changelog +* Thu Mar 19 2026 Scott Mayhew 2.8.3-6 +- nfsdctl: ignore ipv6 listener creation error (RHEL-71352) +- nfsdclnts: fix display of stateids where the kernel doesn't provide the superblock (RHEL-151444) + * Fri Mar 6 2026 Scott Mayhew 2.8.3-5 - mountd: Minor refactor of get_rootfh() (RHEL-127093) - mountd: Separate lookup of the exported directory and the mount path (RHEL-127093)