diff options
author | Julius Hemanth Pitti <jpitti@cisco.com> | 2020-03-19 17:26:43 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-03-30 17:41:56 +0100 |
commit | 2491bc87a421ed145dd552aaed5798e0e7509e61 (patch) | |
tree | 12f54e68062881981fa53672c24ec4259e4ef9d1 /meta/recipes-connectivity | |
parent | 4ccd0345c82f396921b21df491d0ade2ad36089f (diff) | |
download | poky-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/recipes-connectivity')
-rw-r--r-- | meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Disable-statx-if-using-glibc-emulation.patch | 34 | ||||
-rw-r--r-- | meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.1.bb | 1 |
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 @@ | |||
1 | From ff3ad88c233ecd87f7983ad13836323f944540ec Mon Sep 17 00:00:00 2001 | ||
2 | From: Doug Nazar <nazard@nazar.ca> | ||
3 | Date: Mon, 9 Dec 2019 10:53:37 -0500 | ||
4 | Subject: [PATCH] Disable statx if using glibc emulation | ||
5 | |||
6 | On older kernels without statx, glibc with statx support will attempt | ||
7 | to emulate the call. However it doesn't support AT_STATX_DONT_SYNC and | ||
8 | will return EINVAL. This causes all xstat/xlstat calls to fail. | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | |||
12 | Signed-off-by: Doug Nazar <nazard@nazar.ca> | ||
13 | Signed-off-by: Steve Dickson <steved@redhat.com> | ||
14 | --- | ||
15 | support/misc/xstat.c | 3 +++ | ||
16 | 1 file changed, 3 insertions(+) | ||
17 | |||
18 | diff --git a/support/misc/xstat.c b/support/misc/xstat.c | ||
19 | index 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 | -- | ||
33 | 2.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 | " |
37 | SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch" | 38 | SRC_URI_append_libc-glibc = " file://0001-configure.ac-Do-not-fatalize-Wmissing-prototypes.patch" |
38 | SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" | 39 | SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" |