Red Hat Bugzilla – Bug 1461231
[RFE] Support OFD locking constants (glibc)
Last modified: 2017-09-21 13:54:46 EDT
+++ This bug was initially created as a clone of Bug #1444778 +++
F_OFD_* locking API is superior to posix locks and flock(1), we need it in RHEL to support applications doing proper file locking.
The problem with posix locks are described in
The disadvantage with flock(1) is it doesn't reliably work in certain cases like NFS (where it is translated to posix locks).
As a concrete requirement, QEMU wants to use OFD locks to protect image files it opens, so that no concurrent writtings from different processes can happen, which would corrupt a qcow2 image, as an example.
--- Additional comment from Jeff Layton on 2017-04-24 18:48:27 BRT ---
It's certainly doable to add it, and I don't think it'd be problematic for kABI.
Note that we'd also need to coordinate this with the companion glibc patches as well.
--- Additional comment from Eric Sandeen on 2017-04-24 18:55:13 BRT ---
I'm not sure that glibc can add new syscalls to a RHEL release w/o ABI problems - we ran into that back in the fallocate days ...
--- Additional comment from Jeff Layton on 2017-04-24 19:01:52 BRT ---
We don't need a new syscall here. It's just a matter of adding the F_OFD_* constants to the headers (and updating the docs if we care about that). If the kernel doesn't recognize the F_OFD_* commands, then it will just return -EINVAL.
QEMU or whatever will need to be able to detect that as well.
We are currently in the practice of adding new constants to header files to enable kernel functionality, and this is just such a request, so we shouldn't have any real problem adding this to rhel-7.5.
The upstream commit is here:
Author: Jeff Layton <firstname.lastname@example.org>
Date: Wed Jul 23 14:21:05 2014 -0400
fcntl-linux.h: add new definitions and manual updates for open file description locks
Open file description locks have been merged into the Linux kernel for
v3.15. Add the appropriate command-value definitions and an update to
the manual that describes their usage.