summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJulius Hemanth Pitti <jpitti@cisco.com>2020-03-19 17:26:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-03-30 17:41:56 +0100
commit2491bc87a421ed145dd552aaed5798e0e7509e61 (patch)
tree12f54e68062881981fa53672c24ec4259e4ef9d1 /meta
parent4ccd0345c82f396921b21df491d0ade2ad36089f (diff)
downloadpoky-2491bc87a421ed145dd552aaed5798e0e7509e61.tar.gz
nfs-utils: Disable statx if using glibc emulation
nfs-utils 2.4.1, moves from "stat" to "statx with AT_STATX_DONT_SYNC" in parts of the code. statx is supported in Linux kernel v4.11 and above. For all older kernels glibc emulates statx, and it doesn't support AT_STATX_DONT_SYNC and will return EINVAL. When server uses nfs-utils 2.4.1 on kernel v4.10 and older, mount.nfs4 would fail with error "reason given by server: No such file or directory". Since Linux v4.4 and v4.9 are LTS, its more likely that people would use above combination. This issue has been fixed in nfs-utils 2.4.3 and above. Backporting fix to 2.4.1. (From OE-Core rev: 8cbd6f6f7f10c57b27a1388883a6dc5715610600) Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Disable-statx-if-using-glibc-emulation.patch34
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb1
2 files changed, 35 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Disable-statx-if-using-glibc-emulation.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Disable-statx-if-using-glibc-emulation.patch
new file mode 100644
index 0000000000..98b1391923
--- /dev/null
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Disable-statx-if-using-glibc-emulation.patch
@@ -0,0 +1,34 @@
1From ff3ad88c233ecd87f7983ad13836323f944540ec Mon Sep 17 00:00:00 2001
2From: Doug Nazar <nazard@nazar.ca>
3Date: Mon, 9 Dec 2019 10:53:37 -0500
4Subject: [PATCH] Disable statx if using glibc emulation
5
6On older kernels without statx, glibc with statx support will attempt
7to emulate the call. However it doesn't support AT_STATX_DONT_SYNC and
8will return EINVAL. This causes all xstat/xlstat calls to fail.
9
10Upstream-Status: Backport
11
12Signed-off-by: Doug Nazar <nazard@nazar.ca>
13Signed-off-by: Steve Dickson <steved@redhat.com>
14---
15 support/misc/xstat.c | 3 +++
16 1 file changed, 3 insertions(+)
17
18diff --git a/support/misc/xstat.c b/support/misc/xstat.c
19index 661e29e4..a438fbcc 100644
20--- a/support/misc/xstat.c
21+++ b/support/misc/xstat.c
22@@ -51,6 +51,9 @@ statx_do_stat(int fd, const char *pathname, struct stat *statbuf, int flags)
23 statx_copy(statbuf, &stxbuf);
24 return 0;
25 }
26+ /* glibc emulation doesn't support AT_STATX_DONT_SYNC */
27+ if (errno == EINVAL)
28+ errno = ENOSYS;
29 if (errno == ENOSYS)
30 statx_supported = 0;
31 } else
32--
332.19.1
34
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
index 7e80354e4e..3ae8f965c8 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb
@@ -33,6 +33,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.x
33 file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ 33 file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \
34 file://0001-Don-t-build-tools-with-CC_FOR_BUILD.patch \ 34 file://0001-Don-t-build-tools-with-CC_FOR_BUILD.patch \
35 file://0001-Fix-include-order-between-config.h-and-stat.h.patch \ 35 file://0001-Fix-include-order-between-config.h-and-stat.h.patch \
36 file://0001-Disable-statx-if-using-glibc-emulation.patch \
36" 37"
37SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch" 38SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch"
38SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" 39SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch"