Make F_RDLCK/F_WRLCK atomic
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 29 Nov 2017 03:00:21 +0000 (03:00 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Wed, 29 Nov 2017 03:00:21 +0000 (03:00 +0000)
commit828a50b434b14342a604cdaba8ef25f0cf86a9a3
treeef3990fb1a57357d23a0b7e98c85fb551821de0f
parent3fea4638399cb49c5c27c77f07c420617f77c0dc
Make F_RDLCK/F_WRLCK atomic

lockf(LOCK_EX) would for instance drop any existing shared lock before taking
the exclusive lock. F_RDLCK/F_WRLCK need atomic changes, so introduce and use
__LOCK_ATOM

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* misc/sys/file.h (__LOCK_ATOMIC): New macro.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Use __LOCK_ATOMIC along LOCK_SH and
LOCK_EX.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-WRLCK-upgrade.diff
misc/sys/file.h
sysdeps/mach/hurd/fcntl.c