summaryrefslogtreecommitdiff
blob: 7515a819915c282028c87127a69fcd70316c11ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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