From e5475103aab873c96f2afb7bdfe86e413a3445d2 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 10 Nov 2005 23:20:05 +0000 Subject: [PATCH] (fstatat, unlinkat): Perform the syscall directly, skipping the save_cwd...restore_cwd overhead, if FILE is absolute. --- lib/openat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/openat.c b/lib/openat.c index 092e39610d..40d3cc6a24 100644 --- a/lib/openat.c +++ b/lib/openat.c @@ -148,7 +148,7 @@ fstatat (int fd, char const *file, struct stat *st, int flag) int saved_errno; int err; - if (fd == AT_FDCWD) + if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) return (flag == AT_SYMLINK_NOFOLLOW ? lstat (file, st) : stat (file, st)); @@ -192,7 +192,7 @@ unlinkat (int fd, char const *file, int flag) int saved_errno; int err; - if (fd == AT_FDCWD) + if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) return (flag == AT_REMOVEDIR ? rmdir (file) : unlink (file)); if (save_cwd (&saved_cwd) != 0) -- 2.47.3