From: H.J. Lu Date: Tue, 3 Apr 2018 19:19:20 +0000 (-0700) Subject: Update RWF_SUPPORTED for Linux kernel 4.16 [BZ #22947] X-Git-Tag: upstream/2.30~1396 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f2652643d7234c08205b75f527191c2e2b35251f;p=platform%2Fupstream%2Fglibc.git Update RWF_SUPPORTED for Linux kernel 4.16 [BZ #22947] Add RWF_APPEND to RWF_SUPPORTED to support Linux kernel 4.16. [BZ #22947] * bits/uio-ext.h (RWF_APPEND): New. * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise. * manual/llio.texi: Document RWF_APPEND. * misc/tst-preadvwritev2-common.c (RWF_APPEND): New. (RWF_SUPPORTED): Add RWF_APPEND. --- diff --git a/ChangeLog b/ChangeLog index 44a25a3..5d3bf33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2018-04-03 H.J. Lu + + [BZ #22947] + * bits/uio-ext.h (RWF_APPEND): New. + * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise. + * manual/llio.texi: Document RWF_APPEND. + * misc/tst-preadvwritev2-common.c (RWF_APPEND): New. + (RWF_SUPPORTED): Add RWF_APPEND. + 2018-04-03 Adhemerval Zanella [BZ #22391] diff --git a/bits/uio-ext.h b/bits/uio-ext.h index 8c15a05..d5aa06f 100644 --- a/bits/uio-ext.h +++ b/bits/uio-ext.h @@ -28,5 +28,6 @@ #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ +#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ #endif /* sys/uio_ext.h */ diff --git a/manual/llio.texi b/manual/llio.texi index b4fd5e1..82f03be 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -1275,6 +1275,9 @@ Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. @item RWF_NOWAIT Use nonblocking mode for this operation; that is, this call to @code{preadv2} will fail and set @code{errno} to @code{EAGAIN} if the operation would block. + +@item RWF_APPEND +Per-IO synchronization as if the file was opened with @code{O_APPEND} flag. @end vtable When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c index 89fd0a3..f889a21 100644 --- a/misc/tst-preadvwritev2-common.c +++ b/misc/tst-preadvwritev2-common.c @@ -34,7 +34,11 @@ do_test_with_invalid_flags (void) #ifndef RWF_NOWAIT # define RWF_NOWAIT 0 #endif -#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT) +#ifndef RWF_APPEND +# define RWF_APPEND 0 +#endif +#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \ + | RWF_APPEND) /* Set the next bit from the mask of all supported flags. */ int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2; invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag); diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h index 53663ed..8698bc1 100644 --- a/sysdeps/unix/sysv/linux/bits/uio-ext.h +++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h @@ -46,6 +46,7 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ +#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ __END_DECLS