From: Jim Meyering Date: Thu, 10 Nov 2005 23:20:05 +0000 (+0000) Subject: (fstatat, unlinkat): Perform the syscall directly, X-Git-Tag: v6.0~1375 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e5475103aab873c96f2afb7bdfe86e413a3445d2;p=thirdparty%2Fcoreutils.git (fstatat, unlinkat): Perform the syscall directly, skipping the save_cwd...restore_cwd overhead, if FILE is absolute. --- 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)