about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-08-07 17:01:13 +0000
committerJoseph Myers <joseph@codesourcery.com>2019-08-07 17:01:13 +0000
commita02cd8e4e091201cb395a805a9f3e2a9981cae37 (patch)
treeb49dae6170c7155922ae17f3163f8b3055b3cf15
parentd8b97803698dca2116de1d3e2eee35cc8cef6888 (diff)
downloadglibc-a02cd8e4e091201cb395a805a9f3e2a9981cae37.tar.gz
glibc-a02cd8e4e091201cb395a805a9f3e2a9981cae37.tar.xz
glibc-a02cd8e4e091201cb395a805a9f3e2a9981cae37.zip
Add SYNC_FILE_RANGE_WRITE_AND_WAIT from Linux 5.2 to bits/fcntl-linux.h.
This patch adds the SYNC_FILE_RANGE_WRITE_AND_WAIT constant from Linux
5.2 (a new name for a combination of existing bits, not actually a new
kernel interface) to bits/fcntl-linux.h.

Tested for x86_64.

	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
	(SYNC_FILE_RANGE_WRITE_AND_WAIT): New macro.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl-linux.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 53ccbf5e9e..760698b440 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-07  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
+	(SYNC_FILE_RANGE_WRITE_AND_WAIT): New macro.
+
 2019-08-06  Joseph Myers  <joseph@codesourcery.com>
 
 	* io/fcntl.h [__USE_GNU] (AT_RECURSIVE): New macro.
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index 3f32eb328b..ad9bf1b24b 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -334,6 +334,11 @@ struct f_owner_ex
 # define SYNC_FILE_RANGE_WAIT_AFTER	4 /* Wait upon writeout of all pages in
 					     the range after performing the
 					     write.  */
+/* SYNC_FILE_RANGE_WRITE_AND_WAIT ensures all pages in the range are
+   written to disk before returning.  */
+# define SYNC_FILE_RANGE_WRITE_AND_WAIT	(SYNC_FILE_RANGE_WRITE		\
+					 | SYNC_FILE_RANGE_WAIT_BEFORE	\
+					 | SYNC_FILE_RANGE_WAIT_AFTER)
 
 /* Flags for SPLICE and VMSPLICE.  */
 # define SPLICE_F_MOVE		1	/* Move pages instead of copying.  */