summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch31
-rw-r--r--net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild (renamed from net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild)1
2 files changed, 32 insertions, 0 deletions
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch b/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch
new file mode 100644
index 000000000000..7515a819915c
--- /dev/null
+++ b/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch
@@ -0,0 +1,31 @@
+From c8953944c5d34095d42f604f911022fbe144918c Mon Sep 17 00:00:00 2001
+From: Andreas Steinmetz <ast@domdv.de>
+Date: Wed, 30 Oct 2019 16:57:00 +0100
+Subject: [PATCH] Old kernels don't know statx calls and return EINVAL
+
+On a system with glibc-2.29 and kernel 4.9.128 nfs v3 mount fails as
+statx() with mask=STATX_BASIC_STATS returns EINVAL, probably from
+glibc, as strace of rpc.mountd shows no system call.
+
+Fixes: https://bugs.gentoo.org/688644
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ support/misc/xstat.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/support/misc/xstat.c b/support/misc/xstat.c
+index fa047880..6aca6e29 100644
+--- a/support/misc/xstat.c
++++ b/support/misc/xstat.c
+@@ -47,6 +47,8 @@ statx_do_stat(int fd, const char *pathname, struct stat *statbuf, int flags)
+ statx_copy(statbuf, &stxbuf);
+ return 0;
+ }
++ if (errno == EINVAL)
++ errno = ENOSYS;
+ if (errno == ENOSYS)
+ statx_supported = 0;
+ } else
+--
+2.24.0.rc1
+
diff --git a/net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild b/net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild
index 26c3bbb3348d..24e426f2374b 100644
--- a/net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild
+++ b/net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild
@@ -69,6 +69,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.3.4-no-werror.patch
"${FILESDIR}"/${P}-gssd-Look-in-lib32-for-gss-libs-aswell.patch
"${FILESDIR}"/${P}-Fix-include-order-between-config.h-and-stat.h.patch
+ "${FILESDIR}"/${PN}-2.4.1-statx.patch #688644
)
pkg_setup() {