about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/opendir.c
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-05-20 14:55:29 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-20 18:14:01 +0200
commit9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf (patch)
tree458e020a274453bacf526e444594138ca67c36ef /sysdeps/mach/hurd/opendir.c
parent36cc908ed549389713955093bbfeaa35fdaf3e2e (diff)
downloadglibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.tar.gz
glibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.tar.xz
glibc-9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf.zip
hurd: Use __hurd_fail () instead of assigning errno
The __hurd_fail () inline function is the dedicated, idiomatic way of
reporting errors in the Hurd part of glibc. Not only is it more concise
than '{ errno = err; return -1; }', it is since commit
6639cc10029e24e06b34e169712b21c31b8cf213
"hurd: Mark error functions as __COLD" marked with the cold attribute,
telling the compiler that this codepath is unlikely to be executed.

In one case, use __hurd_dfail () over the plain __hurd_fail ().

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230520115531.3911877-1-bugaevc@gmail.com>
Diffstat (limited to 'sysdeps/mach/hurd/opendir.c')
-rw-r--r--sysdeps/mach/hurd/opendir.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/sysdeps/mach/hurd/opendir.c b/sysdeps/mach/hurd/opendir.c
index cfba659c9d..39c805bc8e 100644
--- a/sysdeps/mach/hurd/opendir.c
+++ b/sysdeps/mach/hurd/opendir.c
@@ -40,10 +40,7 @@ _hurd_fd_opendir (struct hurd_fd *d)
   DIR *dirp;
 
   if (d == NULL)
-    {
-      errno = EBADF;
-      return NULL;
-    }
+    return __hurd_fail (EBADF), NULL;
 
   dirp = (DIR *) malloc (sizeof (DIR));
   if (dirp == NULL)
@@ -72,12 +69,9 @@ DIR *
 __opendirat (int dfd, const char *name)
 {
   if (name[0] == '\0')
-    {
-      /* POSIX.1-1990 says an empty name gets ENOENT;
-	 but `open' might like it fine.  */
-      __set_errno (ENOENT);
-      return NULL;
-    }
+    /* POSIX.1-1990 says an empty name gets ENOENT;
+       but `open' might like it fine.  */
+    return __hurd_fail (ENOENT), NULL;
 
   int flags = O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC;
   int fd;
@@ -107,12 +101,9 @@ __opendir (const char *name)
   return __opendirat (AT_FDCWD, name);
 #else
   if (name[0] == '\0')
-    {
-      /* POSIX.1-1990 says an empty name gets ENOENT;
-	 but `open' might like it fine.  */
-      __set_errno (ENOENT);
-      return NULL;
-    }
+    /* POSIX.1-1990 says an empty name gets ENOENT;
+       but `open' might like it fine.  */
+    return __hurd_fail (ENOENT), NULL;
 
   int fd = __open (name, O_RDONLY | O_NONBLOCK | O_DIRECTORY);
   if (fd < 0)