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