From: Thomas Weißschuh Date: Thu, 3 Aug 2023 05:13:28 +0000 (+0200) Subject: libmount: (utils) fix statx fallback X-Git-Tag: v2.40-rc1~308^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=91c2cbdf3a04f2f3f4c4bb0d2a6053874bfa11ea;p=thirdparty%2Futil-linux.git libmount: (utils) fix statx fallback If the systemcall is not available ENOSYS is returned. Under glibc the statx implementation also has its own fallback logic. As AT_STATX_DONT_SYNC can't be implemented correctly in that fallback logic the wrapper will return EINVAL in case the emulation is needed and AT_STATX_DONT_SYNC is set. So also use our own fallback in that case. Fixes: #2409 Signed-off-by: Thomas Weißschuh --- diff --git a/libmount/src/utils.c b/libmount/src/utils.c index 50553f1d5a..410ded4aa2 100644 --- a/libmount/src/utils.c +++ b/libmount/src/utils.c @@ -133,7 +133,8 @@ static int safe_stat(const char *target, struct stat *st, int nofollow) st->st_mode = stx.stx_mode; } - if (rc == 0 || errno != EOPNOTSUPP) + if (rc == 0 || + (errno != EOPNOTSUPP && errno != ENOSYS && errno != EINVAL)) return rc; } #endif