From b6b014bf42f68fcb71d37204328babb81e0e0855 Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Fri, 29 Nov 2019 13:54:36 +0100
Subject: daemon: 'pathExists' uses 'statx' when available.

* nix/libutil/util.cc (pathExists) [HAVE_STATX]: New code.
---
 nix/libutil/util.cc | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'nix/libutil')

diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc
index 8093b4c8b4..faba3789df 100644
--- a/nix/libutil/util.cc
+++ b/nix/libutil/util.cc
@@ -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);
-- 
cgit v1.2.3