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 11/26] Linux: Clean up preadv2, pwritev2 system call names



On 09/02/2020 17:20, Florian Weimer wrote:
> With the built-in tables __NR_preadv2 and __NR_pwritev2 are always
> defined.
> 
> The kernel has never defined __NR_preadv64v2 and __NR_pwritev64v2
> and is unlikely to do so, given that the preadv2 and pwritev2 system
> calls themselves are 64-bit.

LGTM, thanks. 

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

> ---
>  sysdeps/unix/sysv/linux/preadv2.c     | 7 +------
>  sysdeps/unix/sysv/linux/preadv64v2.c  | 9 ++-------
>  sysdeps/unix/sysv/linux/pwritev2.c    | 4 ++--
>  sysdeps/unix/sysv/linux/pwritev64v2.c | 9 ++-------
>  4 files changed, 7 insertions(+), 22 deletions(-)
> 
> diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c
> index 5f1a83589e..4e3aa923da 100644
> --- a/sysdeps/unix/sysv/linux/preadv2.c
> +++ b/sysdeps/unix/sysv/linux/preadv2.c
> @@ -21,20 +21,15 @@
>  
>  #ifndef __OFF_T_MATCHES_OFF64_T
>  
> -# if !defined (__NR_preadv2) && defined (__NR_pread64v2)
> -#  define __NR_preadv2 __NR_pread64v2
> -# endif
> -
>  ssize_t
>  preadv2 (int fd, const struct iovec *vector, int count, off_t offset,
>  	 int flags)
>  {
> -# ifdef __NR_preadv2
>    ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count,
>  				   LO_HI_LONG (offset), flags);
>    if (result >= 0 || errno != ENOSYS)
>      return result;
> -# endif
> +
>    /* Trying to emulate the preadv2 syscall flags is troublesome:
>  
>       * We can not temporary change the file state of the O_DSYNC and O_SYNC

Ok.

> diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c
> index f1e52711cb..1bf1a4c696 100644
> --- a/sysdeps/unix/sysv/linux/preadv64v2.c
> +++ b/sysdeps/unix/sysv/linux/preadv64v2.c
> @@ -19,20 +19,15 @@
>  #include <sys/uio.h>
>  #include <sysdep-cancel.h>
>  
> -#if !defined(__NR_preadv64v2) && defined(__NR_preadv2)
> -# define __NR_preadv64v2 __NR_preadv2
> -#endif
> -
>  ssize_t
>  preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
>  	    int flags)
>  {
> -#ifdef __NR_preadv64v2
> -  ssize_t result = SYSCALL_CANCEL (preadv64v2, fd, vector, count,
> +  ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count,
>  				   LO_HI_LONG (offset), flags);
>    if (result >= 0 || errno != ENOSYS)
>      return result;
> -#endif
> +
>    /* Trying to emulate the preadv2 syscall flags is troublesome:
>  
>       * We can not temporary change the file state of the O_DSYNC and O_SYNC

Ok.

> diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c
> index 53ab5e7613..a179654970 100644
> --- a/sysdeps/unix/sysv/linux/pwritev2.c
> +++ b/sysdeps/unix/sysv/linux/pwritev2.c
> @@ -25,12 +25,12 @@ ssize_t
>  pwritev2 (int fd, const struct iovec *vector, int count, off_t offset,
>  	  int flags)
>  {
> -# ifdef __NR_pwritev2
> +
>    ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count,
>  				   LO_HI_LONG (offset), flags);
>    if (result >= 0 || errno != ENOSYS)
>      return result;
> -# endif
> +
>    /* Trying to emulate the pwritev2 syscall flags is troublesome:
>  
>       * We can not temporary change the file state of the O_DSYNC and O_SYNC

Ok.

> diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c
> index ba95eefcd9..8df32528b7 100644
> --- a/sysdeps/unix/sysv/linux/pwritev64v2.c
> +++ b/sysdeps/unix/sysv/linux/pwritev64v2.c
> @@ -19,20 +19,15 @@
>  #include <sys/uio.h>
>  #include <sysdep-cancel.h>
>  
> -#if !defined(__NR_pwritev64v2) && defined(__NR_pwritev2)
> -# define __NR_pwritev64v2 __NR_pwritev2
> -#endif
> -
>  ssize_t
>  pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
>  	     int flags)
>  {
> -#ifdef __NR_pwritev64v2
> -  ssize_t result = SYSCALL_CANCEL (pwritev64v2, fd, vector, count,
> +  ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count,
>  				   LO_HI_LONG (offset), flags);
>    if (result >= 0 || errno != ENOSYS)
>      return result;
> -#endif
> +
>    /* Trying to emulate the pwritev2 syscall flags is troublesome:
>  
>       * We can not temporary change the file state of the O_DSYNC and O_SYNC
> 


Ok.


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