This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 07/14] Consolidate non cancellable fcntl call


Since this is a refactor, if no one opposes I will commit it shortly.

On 03/08/2017 10:11, Adhemerval Zanella wrote:
> This patch consolidates all the non cancellable fcntl calls to use
> the __fcntl_nocancel 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.
> 
> Since its prototype is already defined at internal fcntl.h header, it
> is removed from not-cancel.h one.
> 
> Checked on x86_64-linux-gnu, x86_64-linux-gnu-x32, and i686-linux-gnu.
> 
> 	* login/utmp_file.c (timeout_handler): Replace fcntl_not_cancel with
> 	__fcntl_nocancel.
> 	* sysdeps/generic/not-cancel.h (fcntl_not_cancel): Remove macro.
> 	* sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Likewise.
> ---
>  ChangeLog                            | 5 +++++
>  login/utmp_file.c                    | 4 ++--
>  sysdeps/generic/not-cancel.h         | 2 --
>  sysdeps/unix/sysv/linux/not-cancel.h | 4 ----
>  4 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/ChangeLog b/ChangeLog
> index fbf0c6a..e1df1c1 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,5 +1,10 @@
>  2017-08-02  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
>  
> +	* login/utmp_file.c (timeout_handler): Replace fcntl_not_cancel with
> +	__fcntl_nocancel.
> +	* sysdeps/generic/not-cancel.h (fcntl_not_cancel): Remove macro.
> +	* sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Likewise.
> +
>  	* gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with
>  	__writev_nocancel_nostatus.
>  	(write_call_graph): Likewise.
> diff --git a/login/utmp_file.c b/login/utmp_file.c
> index 68e00f2..d410b6c 100644
> --- a/login/utmp_file.c
> +++ b/login/utmp_file.c
> @@ -81,7 +81,7 @@ static void timeout_handler (int signum) {};
>    memset (&fl, '\0', sizeof (struct flock));				      \
>    fl.l_type = (type);							      \
>    fl.l_whence = SEEK_SET;						      \
> -  if (fcntl_not_cancel ((fd), F_SETLKW, &fl) < 0)
> +  if (__fcntl_nocancel ((fd), F_SETLKW, &fl) < 0)
>  
>  #define LOCKING_FAILED() \
>    goto unalarm_return
> @@ -89,7 +89,7 @@ static void timeout_handler (int signum) {};
>  #define UNLOCK_FILE(fd) \
>    /* Unlock the file.  */						      \
>    fl.l_type = F_UNLCK;							      \
> -  fcntl_not_cancel ((fd), F_SETLKW, &fl);				      \
> +  __fcntl_nocancel ((fd), F_SETLKW, &fl);				      \
>  									      \
>   unalarm_return:							      \
>    /* Reset the signal handler and alarm.  We must reset the alarm	      \
> diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h
> index e3ed0e6..cf84550 100644
> --- a/sysdeps/generic/not-cancel.h
> +++ b/sysdeps/generic/not-cancel.h
> @@ -36,8 +36,6 @@
>    __write (fd, buf, n)
>  #define __writev_nocancel_nostatus(fd, iov, n) \
>    (void) __writev (fd, iov, n)
> -#define fcntl_not_cancel(fd, cmd, val) \
> -  __fcntl (fd, cmd, val)
>  # define waitpid_not_cancel(pid, stat_loc, options) \
>    __waitpid (pid, stat_loc, options)
>  #define pause_not_cancel() \
> diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
> index 419a3fa..8f567d3 100644
> --- a/sysdeps/unix/sysv/linux/not-cancel.h
> +++ b/sysdeps/unix/sysv/linux/not-cancel.h
> @@ -72,10 +72,6 @@ __writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt)
>    INTERNAL_SYSCALL_CALL (writev, err, fd, iov, iovcnt);
>  }
>  
> -/* Uncancelable fcntl.  */
> -#define fcntl_not_cancel(fd, cmd, val) \
> -  __fcntl_nocancel (fd, cmd, val)
> -
>  /* Uncancelable waitpid.  */
>  #define __waitpid_nocancel(pid, stat_loc, options) \
>    INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]