daemon: 'pathExists' uses 'statx' when available.

* nix/libutil/util.cc (pathExists) [HAVE_STATX]: New code.
This commit is contained in:
Ludovic Courtès 2019-11-29 13:54:36 +01:00
parent 68ac34e120
commit b6b014bf42
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -177,8 +177,13 @@ struct stat lstat(const Path & path)
bool pathExists(const Path & path)
{
int res;
#ifdef HAVE_STATX
struct statx st;
res = statx(AT_FDCWD, path.c_str(), AT_SYMLINK_NOFOLLOW, 0, &st);
#else
struct stat st;
res = lstat(path.c_str(), &st);
#endif
if (!res) return true;
if (errno != ENOENT && errno != ENOTDIR)
throw SysError(format("getting status of %1%") % path);