package/nfs-utils: bump version to 2.9.2

Remove patches upstreamed in this release.

Release announce:
https://lore.kernel.org/linux-nfs/dc0f6f41-84be-4a70-92db-89890bded3ab@redhat.com/

Backport 3 patches from upstream fixing this release regressions:

* 67ed1bdb ("exportfs: link failure with --disable-nfsdctl")
* cec8eeb6 ("getport: fix missing stddef.h inclusion")
* cf80edae ("statd: fix memory leak in sm_mon_1_svc() when existing host re-monitors")

And 4th patch which fixes error on old toolchains, e.g.
br-arm-full-static or bootlin-aarch64-glibc-old.

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[Julien: fix check-package errors]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Petr Vorel
2026-08-20 02:02:51 +02:00
committed by Julien Olivain
parent 43cbd2b46a
commit a0c0208e1b
9 changed files with 162 additions and 138 deletions

View File

@@ -1,28 +0,0 @@
From 2d99ff0aa8a3b4d20558bce742edaaed9d24b3cb Mon Sep 17 00:00:00 2001
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: Tue, 7 Apr 2026 17:23:13 +0200
Subject: [PATCH] fh_key_file: fix missing string.h inclusion
Add #include <string.h> to fix build failure.
Upstream: https://lore.kernel.org/linux-nfs/20260408173535.3992116-1-giulio.benetti@benettiengineering.com/T/#t
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
support/nfs/fh_key_file.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/support/nfs/fh_key_file.c b/support/nfs/fh_key_file.c
index 5f5eafc1..81ea1500 100644
--- a/support/nfs/fh_key_file.c
+++ b/support/nfs/fh_key_file.c
@@ -26,6 +26,7 @@
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
+#include <string.h>
#include <uuid/uuid.h>
#include "nfslib.h"
--
2.47.3

View File

@@ -0,0 +1,40 @@
From cf80edaeb9b120b7a533e0d3aea2f05cfcab85ae Mon Sep 17 00:00:00 2001
From: xuchenchen <xuchenchen@kylinos.cn>
Date: Sat, 15 Aug 2026 13:58:16 -0400
Subject: [PATCH] statd: fix memory leak in sm_mon_1_svc() when existing host
re-monitors
When an already-monitored host sends a new SM_MON request with a
different priv cookie, the code sets existing=1 and reuses the
existing notify_list entry. However, clnt->dns_name is overwritten
with the newly allocated dnsname without freeing the old value,
causing a memory leak.
Since statd is a long-running daemon, repeated SM_MON requests with
changing cookies will accumulate leaked strings.
Fix by freeing the old dns_name before overwriting it.
Signed-off-by: xuchenchen <xuchenchen@kylinos.cn>
Signed-off-by: Steve Dickson <steved@redhat.com>
Upstream: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=cf80edaeb9b120b7a533e0d3aea2f05cfcab85ae
---
utils/statd/monitor.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/utils/statd/monitor.c b/utils/statd/monitor.c
index c76589ca..76ef16f1 100644
--- a/utils/statd/monitor.c
+++ b/utils/statd/monitor.c
@@ -187,6 +187,8 @@ sm_mon_1_svc(struct mon *argp, struct svc_req *rqstp)
NL_MY_VERS(clnt) = id->my_vers;
NL_MY_PROC(clnt) = id->my_proc;
memcpy(NL_PRIV(clnt), argp->priv, SM_PRIV_SIZE);
+ if (existing)
+ free(clnt->dns_name);
clnt->dns_name = dnsname;
/*
--
2.53.0

View File

@@ -1,77 +0,0 @@
From 218e1b572123f527bd92c17ebb7ac00c2a7e6c01 Mon Sep 17 00:00:00 2001
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: Tue, 7 Apr 2026 17:47:40 +0200
Subject: [PATCH] Introduce compat.h file to deal with old Linux api and fix
build failure due to missing NETLINK_EXT_ACK
In compat.h check if NETLINK_EXT_ACK exists, otherwise define it to fix
build failure and where at the moment <linux/netlink.h> is included
let's include "compat.h"
Upstream: https://lore.kernel.org/linux-nfs/20260408173535.3992116-2-giulio.benetti@benettiengineering.com/T/#u
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
support/export/cache.c | 2 +-
support/export/cache_flush.c | 2 ++
support/include/compat.h | 10 ++++++++++
utils/nfsdctl/nfsdctl.c | 1 +
4 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 support/include/compat.h
diff --git a/support/export/cache.c b/support/export/cache.c
index 2f128d7d..65008f51 100644
--- a/support/export/cache.c
+++ b/support/export/cache.c
@@ -40,7 +40,7 @@
#include <netlink/genl/ctrl.h>
#include <netlink/msg.h>
#include <netlink/attr.h>
-#include <linux/netlink.h>
+#include "compat.h"
#ifdef USE_SYSTEM_NFSD_NETLINK_H
#include <linux/nfsd_netlink.h>
diff --git a/support/export/cache_flush.c b/support/export/cache_flush.c
index ed7b964f..2a24dec7 100644
--- a/support/export/cache_flush.c
+++ b/support/export/cache_flush.c
@@ -38,6 +38,8 @@ extern int no_netlink;
#include "sunrpc_netlink.h"
#endif
+#include "compat.h"
+
static int nl_send_flush(struct nl_sock *sock, int family, int cmd)
{
struct nl_msg *msg;
diff --git a/support/include/compat.h b/support/include/compat.h
new file mode 100644
index 00000000..83229b65
--- /dev/null
+++ b/support/include/compat.h
@@ -0,0 +1,10 @@
+#ifndef COMPAT_H
+#define COMPAT_H
+
+#include <linux/netlink.h>
+
+#ifndef NETLINK_EXT_ACK
+#define NETLINK_EXT_ACK 11
+#endif
+
+#endif /* COMPAT_H */
diff --git a/utils/nfsdctl/nfsdctl.c b/utils/nfsdctl/nfsdctl.c
index 016dd2eb..c7126748 100644
--- a/utils/nfsdctl/nfsdctl.c
+++ b/utils/nfsdctl/nfsdctl.c
@@ -26,6 +26,7 @@
#include <netlink/msg.h>
#include <netlink/attr.h>
#include <linux/netlink.h>
+#include "compat.h"
#include <readline/readline.h>
#include <readline/history.h>
--
2.47.3

View File

@@ -0,0 +1,33 @@
From cec8eeb69dc65eb91e0cb23ebff23530d9397425 Mon Sep 17 00:00:00 2001
From: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Date: Sat, 15 Aug 2026 14:00:36 -0400
Subject: [PATCH] getport: fix missing stddef.h inclusion
getport.c uses offsetof() but does not include <stddef.h>. On glibc
this works because offsetof is pulled in transitively, but on musl it
is not available without the explicit include, causing:
getport.c:459:41: error: implicit declaration of function 'offsetof'
Signed-off-by: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
Signed-off-by: Steve Dickson <steved@redhat.com>
Upstream: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=cec8eeb69dc65eb91e0cb23ebff23530d9397425
---
support/nfs/getport.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/support/nfs/getport.c b/support/nfs/getport.c
index 608e185b..6bd2f713 100644
--- a/support/nfs/getport.c
+++ b/support/nfs/getport.c
@@ -27,6 +27,7 @@
#endif
#include <sys/types.h>
+#include <stddef.h>
#include <sys/time.h>
#include <unistd.h>
#include <fcntl.h>
--
2.53.0

View File

@@ -0,0 +1,39 @@
From 67ed1bdb1af1c70a5fd3b377a997401b7676b827 Mon Sep 17 00:00:00 2001
From: jaipaul Cheernam <jaipaul.cheernam@est.tech>
Date: Sat, 15 Aug 2026 14:20:03 -0400
Subject: [PATCH] exportfs: link failure with --disable-nfsdctl
Building nfs-utils 2.9.2 with --disable-nfsdctl fails to link
exportfs. This is a regression from 2.9.1.
Signed-off-by: Steve Dickson <steved@redhat.com>
Upstream: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=67ed1bdb1af1c70a5fd3b377a997401b7676b827
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4ea19715..2ce1e129 100644
--- a/configure.ac
+++ b/configure.ac
@@ -256,8 +256,6 @@ PKG_CHECK_MODULES(LIBNL3, libnl-3.0 >= 3.1)
PKG_CHECK_MODULES(LIBNLGENL3, libnl-genl-3.0 >= 3.1)
AC_CHECK_HEADERS(linux/nfsd_netlink.h)
-AC_DEFINE([HAVE_NFSD_NETLINK], 1,
- [Define to 1 if nfsd generic netlink support is available])
# ensure the system netlink headers have the latest features
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/nfsd_netlink.h>]],
@@ -279,6 +277,8 @@ AC_ARG_ENABLE(nfsdctl,
enable_nfsdctl="yes")
AM_CONDITIONAL(CONFIG_NFSDCTL, [test "$enable_nfsdctl" = "yes" ])
if test "$enable_nfsdctl" = yes; then
+ AC_DEFINE([HAVE_NFSD_NETLINK], 1,
+ [Define to 1 if nfsd generic netlink support is available])
PKG_CHECK_MODULES(LIBREADLINE, readline)
fi
--
2.53.0

View File

@@ -1,30 +0,0 @@
From dbd44e7d6d4140e5e9d01f0a6daf6f3e45e5acbc Mon Sep 17 00:00:00 2001
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: Wed, 8 Apr 2026 14:28:28 +0200
Subject: [PATCH] support/backend_sqlite.c: fix getrandom() fallback
In old Linux/Glibc versions __NR_getrandom is defined in <sys/random.h>
so let's add it to fix build failure.
Upstream: https://lore.kernel.org/linux-nfs/20260408173535.3992116-3-giulio.benetti@benettiengineering.com/T/#u
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
support/reexport/backend_sqlite.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/support/reexport/backend_sqlite.c b/support/reexport/backend_sqlite.c
index 0eb5ea37..a1e981e4 100644
--- a/support/reexport/backend_sqlite.c
+++ b/support/reexport/backend_sqlite.c
@@ -9,6 +9,8 @@
#include <string.h>
#include <unistd.h>
+#include <sys/syscall.h>
+
#ifdef HAVE_GETRANDOM
# include <sys/random.h>
# if !defined(SYS_getrandom) && defined(__NR_getrandom)
--
2.47.3

View File

@@ -0,0 +1,44 @@
From 7b886f3502977040461a8b31f5948a128f7069e2 Mon Sep 17 00:00:00 2001
From: Petr Vorel <petr.vorel@gmail.com>
Date: Thu, 20 Aug 2026 01:03:10 +0200
Subject: [FTBFS,PATCH,nfs-utils 1/1] getport: Fix switch case on old compilers
Cc: Steve Dickson <SteveD@RedHat.com>,
Giulio Benetti <giulio.benetti@benettiengineering.com>,
Julien Olivain <ju.o@free.fr>
Buildroot distro compiles with fairly old compilers, which defaults to
old C11 standard (some of still used compilers don't even have newer
standard than C11). Workaround code which requires C23 with using { }.
This fixes error:
getport.c:460:3: error: a label can only be part of a statement and a declaration is not a statement
size_t path_len = len - offsetof(struct sockaddr_un, sun_path);
^~~~~~
Fixes: 1a6dcd74 ("Removed warnings in nfs_sockaddr2universal()")
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Upstream: https://lore.kernel.org/linux-nfs/20260819232049.438643-1-petr.vorel@gmail.com/
---
support/nfs/getport.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/support/nfs/getport.c b/support/nfs/getport.c
index 6bd2f713..18ea0777 100644
--- a/support/nfs/getport.c
+++ b/support/nfs/getport.c
@@ -456,9 +456,10 @@ char *nfs_sockaddr2universal(const struct sockaddr *sap)
int len = sizeof(struct sockaddr);
switch (sap->sa_family) {
- case AF_LOCAL:
+ case AF_LOCAL: {
size_t path_len = len - offsetof(struct sockaddr_un, sun_path);
return strndup(sun->sun_path, path_len);
+ }
case AF_INET:
if (inet_ntop(AF_INET, (const void *)&sin->sin_addr.s_addr,
buf, (socklen_t)sizeof(buf)) == NULL)
--
2.53.0

View File

@@ -1,4 +1,4 @@
# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.9.1/sha256sums.asc
sha256 302846343bf509f8f884c23bdbd0fe853b7f7cbb6572060a9082279d13b21a2c nfs-utils-2.9.1.tar.xz
# From https://www.kernel.org/pub/linux/utils/nfs-utils/2.9.2/sha256sums.asc
sha256 e1dd8a9c95af15492065942cc3b52b1339ffd586baa2280ed86c9d3dc4097e8c nfs-utils-2.9.2.tar.xz
# Locally computed
sha256 576540abf5e95029ad4ad90e32071385a5e95b2c30708c706116f3eb87b9a3de COPYING

View File

@@ -4,7 +4,7 @@
#
################################################################################
NFS_UTILS_VERSION = 2.9.1
NFS_UTILS_VERSION = 2.9.2
NFS_UTILS_SOURCE = nfs-utils-$(NFS_UTILS_VERSION).tar.xz
NFS_UTILS_SITE = https://www.kernel.org/pub/linux/utils/nfs-utils/$(NFS_UTILS_VERSION)
NFS_UTILS_LICENSE = GPL-2.0+
@@ -12,6 +12,9 @@ NFS_UTILS_LICENSE_FILES = COPYING
NFS_UTILS_DEPENDENCIES = host-nfs-utils host-pkgconf libevent libnl libtirpc sqlite util-linux
NFS_UTILS_CPE_ID_VENDOR = linux-nfs
# 0003-exportfs-link-failure-with-disable-nfsdctl.patch
NFS_UTILS_AUTORECONF = YES
NFS_UTILS_CONF_ENV = knfsd_cv_bsd_signals=no
NFS_UTILS_CONF_OPTS = \