This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
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.