arrfab / rpms / glibc

Forked from rpms/glibc 5 years ago
Clone

Blame SOURCES/glibc-rh1461231.patch

147e83
commit 0961f7e1e300ef633b0c1ad95d0999fb5c169f4e
147e83
Author: Jeff Layton <jlayton@poochiereds.net>
147e83
Date:   Wed Jul 23 14:21:05 2014 -0400
147e83
147e83
    fcntl-linux.h: add new definitions and manual updates for open file description locks
147e83
    
147e83
    Open file description locks have been merged into the Linux kernel for
147e83
    v3.15.  Add the appropriate command-value definitions and an update to
147e83
    the manual that describes their usage.
147e83
147e83
Note by DJ: the implementation doesn't work correctly for 32-bit file
147e83
offsets.  Upstream changed the ABI to compensate but RHEL can't, so we
147e83
enable these only for when file offsets are 64 bits.
147e83
147e83
diff -rup a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
147e83
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 18:38:24.000000000 -0400
147e83
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 20:05:21.743234360 -0400
147e83
@@ -117,6 +117,25 @@
147e83
 # define F_SETLKW64	14	/* Set record locking info (blocking).	*/
147e83
 #endif
147e83
 
147e83
+#ifdef __USE_FILE_OFFSET64
147e83
+/* open file description locks.
147e83
+
147e83
+   Usually record locks held by a process are released on *any* close and are
147e83
+   not inherited across a fork.
147e83
+
147e83
+   These cmd values will set locks that conflict with process-associated record
147e83
+   locks, but are "owned" by the opened file description, not the process.
147e83
+   This means that they are inherited across fork or clone with CLONE_FILES
147e83
+   like BSD (flock) locks, and they are only released automatically when the
147e83
+   last reference to the the file description against which they were acquired
147e83
+   is put. */
147e83
+#ifdef __USE_GNU
147e83
+# define F_OFD_GETLK	36
147e83
+# define F_OFD_SETLK	37
147e83
+# define F_OFD_SETLKW	38
147e83
+#endif
147e83
+#endif
147e83
+
147e83
 #ifdef __USE_LARGEFILE64
147e83
 # define O_LARGEFILE __O_LARGEFILE
147e83
 #endif