diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-07-03 15:22:58 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-08-18 18:38:55 -0300 |
commit | c181840c93d3a8fcb50991b2326c40f34eb5e82b (patch) | |
tree | 1a3b09841652c71dc33b608b6a55006bf6106e59 /sysdeps/posix | |
parent | 0bb2fabcb3bcac064a3d89917c0736353cdac2f4 (diff) | |
download | glibc-c181840c93d3a8fcb50991b2326c40f34eb5e82b.tar.gz glibc-c181840c93d3a8fcb50991b2326c40f34eb5e82b.tar.xz glibc-c181840c93d3a8fcb50991b2326c40f34eb5e82b.zip |
Consolidate non cancellable close call
This patch consolidates all the non cancellable close calls to use the __close_nocancel{_nostatus} identifier. For non cancellable targets it will be just a macro to call the default respective symbol while on Linux will be a internal one. Also, since it is used on libcrypto it is also exported in GLIBC_PRIVATE namespace. Checked on x86_64-linux-gnu, x86_64-linux-gnu-x32, and i686-linux-gnu. * sysdeps/generic/not-cancel.h (close_not_cancel): Remove macro. (close_not_cancel_no_status): Likewise. (__close_nocancel): New macro. (__close_nocancel_no_status): Likewise. * sysdeps/unix/sysv/linux/not-cancel.h (__close_nocancel): Remove macro. (close_not_cancel): Likewise. (close_not_cancel_no_status): Likewise. (__close_nocancel): New prototype. (__close_nocancel_no_status): New function. * sysdeps/unix/sysv/linux/close.c (__close_nocancel): New function. * catgets/open_catalog.c (__open_catalog): Replace close_not_cancel{_no_status) with __close_nocancel{_nostatus}. * gmon/gmon.c (write_gmon): Likewise. * iconv/gconv_cache.c (__gconv_load_cache): Likewise. * intl/loadmsgcat.c (close): Likewise. * io/ftw.c (open_dir_stream): Likewise. (ftw_startup): Likewise. * libio/fileops.c (_IO_file_open): Likewise. (_IO_file_close_mmap): Likewise. (_IO_file_close): Likewise. * libio/iopopen.c (_IO_dup2): Likewise. * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise. * locale/loadlocale.c (_nl_load_locale): Likewise. * login/utmp_file.c (pututline_file): Likewise. (endutent_file): Likewise. * misc/daemon.c (daemon): Likewise. * nscd/nscd_getai.c (__nscd_getai): Likewise. * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise. * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise. * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise. * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. * nscd/nscd_helper.c (open_socket): Likewise. (__nscd_open_socket): Likewise. * nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise. * nscd/nscd_netgroup.c (__nscd_setnetgrent): Likewise. (__nscd_innetgr): Likewise. * nss/nss_db/db-open.c (internal_setent): Likewise. * resolv/res-close.c (__res_iclose): Likewise. * sunrpc/pm_getmaps.c (pmap_getmaps): Likewise. * sysdeps/posix/closedir.c (__closedir): Likewise. * sysdeps/posix/getaddrinfo.c (getaddrinfo): Likewise. * sysdeps/posix/getcwd.c (__getcwd): Likewise. * sysdeps/posix/opendir.c (tryopen_o_directory): Likewise. (opendir_tail): Likewise. * sysdeps/posix/spawni.c (__spawni_child): Likewise. * sysdeps/unix/sysv/linux/check_native.c (__check_native): Likewise. * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Likewise. * sysdeps/unix/sysv/linux/fips-private.h (fips_enabled_p): Likewise. * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise. (gethostid): Likewise. * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise. * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Likewise. * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise. * sysdeps/unix/sysv/linux/grantpt.c (close_all_fds): Likewise. * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise. * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock): Likewise. * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Likewise. * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps): Likewise. * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap): Likewise. * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise. * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np): Likewise. * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np): Likewise. * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise. * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/closedir.c | 2 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 4 | ||||
-rw-r--r-- | sysdeps/posix/getcwd.c | 4 | ||||
-rw-r--r-- | sysdeps/posix/opendir.c | 6 | ||||
-rw-r--r-- | sysdeps/posix/spawni.c | 6 |
5 files changed, 11 insertions, 11 deletions
diff --git a/sysdeps/posix/closedir.c b/sysdeps/posix/closedir.c index e7b7d77fde..dbde65f5dc 100644 --- a/sysdeps/posix/closedir.c +++ b/sysdeps/posix/closedir.c @@ -49,6 +49,6 @@ __closedir (DIR *dirp) free ((void *) dirp); - return close_not_cancel (fd); + return __close_nocancel (fd); } weak_alias (__closedir, closedir) diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 09f85fc472..f02bbbe533 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -2399,7 +2399,7 @@ getaddrinfo (const char *name, const char *service, { if (fd != -1) close_retry: - close_not_cancel_no_status (fd); + __close_nocancel_nostatus (fd); af = q->ai_family; fd = __socket (af, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_IP); } @@ -2502,7 +2502,7 @@ getaddrinfo (const char *name, const char *service, } if (fd != -1) - close_not_cancel_no_status (fd); + __close_nocancel_nostatus (fd); /* We got all the source addresses we can get, now sort using the information. */ diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c index caa352732a..702a052306 100644 --- a/sysdeps/posix/getcwd.c +++ b/sysdeps/posix/getcwd.c @@ -176,7 +176,7 @@ extern char *alloca (); # include <kernel-features.h> #else # define __openat64_nocancel(dfd, name, mode) openat64 (dfd, name, mode) -# define close_not_cancel_no_status(fd) close (fd) +# define __close_nocancel_nostatus(fd) close (fd) #endif #ifndef PATH_MAX @@ -521,7 +521,7 @@ __getcwd (char *buf, size_t size) if (dirstream != NULL) __closedir (dirstream); if (fd_needs_closing) - close_not_cancel_no_status (fd); + __close_nocancel_nostatus (fd); #ifndef NO_ALLOCATION if (buf == NULL) free (path); diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c index 51a92e853c..880ebc904c 100644 --- a/sysdeps/posix/opendir.c +++ b/sysdeps/posix/opendir.c @@ -65,7 +65,7 @@ tryopen_o_directory (void) if (x >= 0) { - close_not_cancel_no_status (x); + __close_nocancel_nostatus (x); o_directory_works = -1; } else if (errno != ENOTDIR) @@ -129,7 +129,7 @@ opendir_tail (int fd) { __set_errno (ENOTDIR); lose: - close_not_cancel_no_status (fd); + __close_nocancel_nostatus (fd); return NULL; } @@ -227,7 +227,7 @@ __alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp) if (close_fd) { int save_errno = errno; - close_not_cancel_no_status (fd); + __close_nocancel_nostatus (fd); __set_errno (save_errno); } return NULL; diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c index b5732714ae..0605562ef3 100644 --- a/sysdeps/posix/spawni.c +++ b/sysdeps/posix/spawni.c @@ -157,7 +157,7 @@ __spawni_child (void *arguments) switch (action->tag) { case spawn_do_close: - if (close_not_cancel (action->action.close_action.fd) != 0) + if (__close_nocancel (action->action.close_action.fd) != 0) { if (have_fdlimit == 0) { @@ -180,7 +180,7 @@ __spawni_child (void *arguments) with the process already at maximum number of file descriptor opened and also for multiple actions on single-open special paths (like /dev/watchdog). */ - close_not_cancel (action->action.open_action.fd); + __close_nocancel (action->action.open_action.fd); int new_fd = __open_nocancel (action->action.open_action.path, action->action.open_action.oflag @@ -197,7 +197,7 @@ __spawni_child (void *arguments) != action->action.open_action.fd) goto fail; - if (close_not_cancel (new_fd) != 0) + if (__close_nocancel (new_fd) != 0) goto fail; } } |