[PATCH 00/12 v5] locks: avoid thundering-herd wake-ups

From: NeilBrown
Date: Sun Nov 11 2018 - 20:16:57 EST


Changes:
- field names improved as requested by Bruce.
"fl_blocked_requests" is a list of blocked requests,
linked through fl_block_member
- the introductory text has been moved to a commit comment
as suggested by Bruce
- documentation added to locks.c as suggested by Bruce - I made
a few little changes
- flock_make_lock() now properly initialized a lock - using
the code from Jeff
- code actually compiles for ocfs2 and gfs2

Thanks,
NeilBrown


---

NeilBrown (12):
fs/locks: rename some lists and pointers.
fs/locks: split out __locks_wake_up_blocks().
NFS: use locks_copy_lock() to copy locks.
gfs2: properly initial file_lock used for unlock.
ocfs2: properly initial file_lock used for unlock.
locks: use properly initialized file_lock when unlocking.
fs/locks: allow a lock request to block other requests.
fs/locks: always delete_block after waiting.
fs/locks: change all *_conflict() functions to return bool.
fs/locks: create a tree of dependent requests.
locks: merge posix_unblock_lock() and locks_delete_block()
VFS: locks: remove unnecessary white space.


fs/cifs/file.c | 4
fs/gfs2/file.c | 10 +
fs/lockd/svclock.c | 2
fs/locks.c | 319 ++++++++++++++++++++++++---------------
fs/nfs/nfs4proc.c | 6 -
fs/nfsd/nfs4state.c | 6 -
fs/ocfs2/locks.c | 10 +
include/linux/fs.h | 13 +-
include/trace/events/filelock.h | 16 +-
9 files changed, 230 insertions(+), 156 deletions(-)

--
Signature