Message ID | 154198490921.14364.13726904731989686092.stgit@noble (mailing list archive) |
---|---|
Headers | show |
Series | locks: avoid thundering-herd wake-ups | expand |
ACK to the series. It also passed my usual regression tests on top of 4.19. (I still have some unrelated problems to sort out on 4.20.) --b. On Mon, Nov 12, 2018 at 12:14:48PM +1100, NeilBrown wrote: > 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
On Mon, 2018-11-12 at 12:14 +1100, NeilBrown wrote: > 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 > Thanks Neil, I'll pull this into locks-next. I also went ahead and fixed up the comment that Bruce pointed out.