diff options
author | Sergey Bugaev <bugaevc@gmail.com> | 2023-05-20 14:55:29 +0300 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-05-20 18:14:01 +0200 |
commit | 9ec31e57278ffc4e680ef03e75ce5b6b02e5edcf (patch) | |
tree | 458e020a274453bacf526e444594138ca67c36ef /sysdeps/mach/hurd/opendir.c | |
parent | 36cc908ed549389713955093bbfeaa35fdaf3e2e (diff) | |
download | glibc-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.c | 23 |
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) |