Skip to content

filelock: split file leases out of struct file_lock

Jeff Layton ceph-devel gfs2 linux-cifs linux-fsdevel linux-nfs linux-trace-kernel lkml ocfs2-devel v9fs 3 versions – Applied

Status from this message: Applied to the vfs.file branch of the vfs/vfs.git tree.

Get series with b4
b4 am [email protected] change-id 20240116-flsplit-bdb46824db68

Versions newest first

  1. v3 Latest47 patches 9 repliesApplied
  2. v241 patches 4 repliesSuperseded
  3. v120 patches 19 repliesSuperseded

Changes in v3 from the cover letter

- Rename "flc_core" fields in file_lock and file_lease to "c"
- new helpers: locks_wake_up, for_each_file_lock, and lock_is_{unlock,read,write}
- Link to v2: https://lore.kernel.org/r/[email protected]

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/47filelock: fl_pid field should be signed intinclude/linux/filelock.h+1 -10 replies
2/47filelock: rename some fields in tracepointsinclude/trace/events/filelock.h+38 -380 replies
3/47filelock: rename fl_pid variable in lock_get_statusfs/locks.c+4 -40 replies
4/47filelock: add some new helper functionsfs/locks.c include/linux/filelock.h+32 -95 replies
5/479p: rename fl_type variable in v9fs_file_do_lockfs/9p/vfs_file.c+3 -30 replies
6/47afs: convert to using new filelock helpersfs/afs/flock.c+13 -130 replies
7/47ceph: convert to using new filelock helpersfs/ceph/locks.c+12 -120 replies
8/47dlm: convert to using new filelock helpersfs/dlm/plock.c+5 -50 replies
9/47gfs2: convert to using new filelock helpersfs/gfs2/file.c+4 -40 replies
10/47lockd: convert to using new filelock helpersfs/lockd/clntproc.c fs/lockd/svcsubs.c+13 -130 replies
11/47nfs: convert to using new filelock helpersfs/nfs/delegation.c fs/nfs/file.c fs/nfs/nfs4proc.c +3 more+21 -210 replies
12/47nfsd: convert to using new filelock helpersfs/nfsd/nfs4state.c+16 -160 replies
13/47ocfs2: convert to using new filelock helpersfs/ocfs2/locks.c fs/ocfs2/stack_user.c+3 -30 replies
14/47smb/client: convert to using new filelock helpersfs/smb/client/file.c+6 -60 replies
15/47smb/server: convert to using new filelock helpersfs/smb/server/smb2pdu.c fs/smb/server/vfs.c+6 -60 replies
16/47filelock: drop the IS_* macrosfs/locks.c+15 -170 replies
17/47filelock: split common fields into struct file_lock_corefs/9p/vfs_file.c fs/afs/internal.h fs/ceph/locks.c +21 more+65 -230 replies
18/47filelock: have fs/locks.c deal with file_lock_core directlyfs/locks.c include/trace/events/filelock.h+254 -2450 replies
19/47filelock: convert more internal functions to use file_lock_corefs/locks.c+25 -260 replies
20/47filelock: make posix_same_owner take file_lock_core pointersfs/locks.c+8 -80 replies
21/47filelock: convert posix_owner_key to take file_lock_core argfs/locks.c+4 -40 replies
22/47filelock: make locks_{insert,delete}_global_locks take file_lock_core argfs/locks.c+9 -90 replies
23/47filelock: convert locks_{insert,delete}_global_blockedfs/locks.c+6 -70 replies
24/47filelock: make __locks_delete_block and __locks_wake_up_blocks take file_lock_corefs/locks.c+27 -180 replies
25/47filelock: convert __locks_insert_block, conflict and deadlock checks to use file_lock_corefs/locks.c+72 -601 reply
26/47filelock: convert fl_blocker to file_lock_corefs/locks.c include/linux/filelock.h include/trace/events/filelock.h+11 -110 replies
27/47filelock: clean up locks_delete_block internalsfs/locks.c+8 -70 replies
28/47filelock: reorganize locks_delete_block and __locks_insert_blockfs/locks.c+22 -200 replies
29/47filelock: make assign_type helper take a file_lock_core pointerfs/locks.c+5 -50 replies
30/47filelock: convert locks_wake_up_blocks to take a file_lock_core pointerfs/locks.c+7 -70 replies
31/47filelock: convert locks_insert_lock_ctx and locks_delete_lock_ctxfs/locks.c+22 -220 replies
32/47filelock: convert locks_translate_pid to take file_lock_corefs/locks.c+10 -100 replies
33/47filelock: convert seqfile handling to use file_lock_corefs/locks.c+36 -360 replies
34/479p: adapt to breakup of struct file_lockfs/9p/vfs_file.c+19 -201 reply
35/47afs: adapt to breakup of struct file_lockfs/afs/flock.c fs/afs/internal.h include/trace/events/afs.h+21 -220 replies
36/47ceph: adapt to breakup of struct file_lockfs/ceph/locks.c+26 -250 replies
37/47dlm: adapt to breakup of struct file_lockfs/dlm/plock.c+22 -230 replies
38/47gfs2: adapt to breakup of struct file_lockfs/gfs2/file.c+5 -60 replies
39/47fuse: adapt to breakup of struct file_lockfs/fuse/file.c+7 -80 replies
40/47lockd: adapt to breakup of struct file_lockfs/lockd/clnt4xdr.c fs/lockd/clntlock.c fs/lockd/clntproc.c +9 more+119 -1140 replies
41/47nfs: adapt to breakup of struct file_lockfs/nfs/delegation.c fs/nfs/file.c fs/nfs/nfs3proc.c +6 more+38 -380 replies
42/47nfsd: adapt to breakup of struct file_lockfs/nfsd/filecache.c fs/nfsd/netns.h fs/nfsd/nfs4callback.c +2 more+46 -450 replies
43/47ocfs2: adapt to breakup of struct file_lockfs/ocfs2/locks.c fs/ocfs2/stack_user.c+4 -60 replies
44/47smb/client: adapt to breakup of struct file_lockfs/smb/client/cifsglob.h fs/smb/client/cifssmb.c fs/smb/client/file.c +1 more+40 -400 replies
45/47smb/server: adapt to breakup of struct file_lockfs/smb/server/smb2pdu.c fs/smb/server/vfs.c+23 -250 replies
46/47filelock: remove temporary compatibility macrosinclude/linux/filelock.h+0 -160 replies
47/47filelock: split leases out of struct file_lockfs/libfs.c fs/locks.c fs/nfs/nfs4_fs.h +8 more+153 -980 replies

Reviews trailers per patch

1 of 47 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchNeilBrownJeff Layton
SeriesR-b
1/47
2/47
3/47
4/47R-b
5/47
6/47
7/47
8/47
9/47
10/47
11/47
12/47
13/47
14/47
15/47
16/47
17/47
18/47
19/47
20/47
21/47
22/47
23/47
24/47
25/47
26/47
27/47
28/47
29/47
30/47
31/47
32/47
33/47
34/47
35/47
36/47
37/47
38/47
39/47
40/47
41/47
42/47
43/47
44/47
45/47
46/47
47/47

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 00/47] filelock: split file leases out of struct file_lock

I'm not sure this is much prettier than the last, but contracting "fl_core" to "c", as Neil suggested is a bit easier on the eyes.

I also added a few small helpers and converted several users over to them. That reduces the size of the per-fs conversion patches later in the series. I played with some others too, but they were too awkward or not frequently used enough to make it worthwhile.

Many thanks to Chuck and Neil for the earlier R-b's and comments. I've dropped those for now since this set is a bit different from the last.

I'd like to get this into linux-next soon and we can see about merging it for v6.9, unless anyone has major objections.

Thanks!

---
Changes in v3:
- Rename "flc_core" fields in file_lock and file_lease to "c"
- new helpers: locks_wake_up, for_each_file_lock, and lock_is_{unlock,read,write}
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- renamed file_lock_core fields to have "flc_" prefix
- used macros to more easily do the change piecemeal
- broke up patches into per-subsystem ones
- Link to v1: https://lore.kernel.org/r/[email protected]

---
Jeff Layton (47):
filelock: fl_pid field should be signed int
filelock: rename some fields in tracepoints
filelock: rename fl_pid variable in lock_get_status
filelock: add some new helper functions
9p: rename fl_type variable in v9fs_file_do_lock
afs: convert to using new filelock helpers
ceph: convert to using new filelock helpers
dlm: convert to using new filelock helpers
gfs2: convert to using new filelock helpers
lockd: convert to using new filelock helpers
nfs: convert to using new filelock helpers
nfsd: convert to using new filelock helpers
ocfs2: convert to using new filelock helpers
smb/client: convert to using new filelock helpers
smb/server: convert to using new filelock helpers
filelock: drop the IS_* macros
filelock: split common fields into struct file_lock_core
filelock: have fs/locks.c deal with file_lock_core directly
filelock: convert more internal functions to use file_lock_core
filelock: make posix_same_owner take file_lock_core pointers
filelock: convert posix_owner_key to take file_lock_core arg
filelock: make locks_{insert,delete}_global_locks take file_lock_core arg
filelock: convert locks_{insert,delete}_global_blocked
filelock: make __locks_delete_block and __locks_wake_up_blocks take file_lock_core
filelock: convert __locks_insert_block, conflict and deadlock checks to use file_lock_core
filelock: convert fl_blocker to file_lock_core
filelock: clean up locks_delete_block internals
filelock: reorganize locks_delete_block and __locks_insert_block
filelock: make assign_type helper take a file_lock_core pointer
filelock: convert locks_wake_up_blocks to take a file_lock_core pointer
filelock: convert locks_insert_lock_ctx and locks_delete_lock_ctx
filelock: convert locks_translate_pid to take file_lock_core
filelock: convert seqfile handling to use file_lock_core
9p: adapt to breakup of struct file_lock
afs: adapt to breakup of struct file_lock
ceph: adapt to breakup of struct file_lock
dlm: adapt to breakup of struct file_lock
gfs2: adapt to breakup of struct file_lock
fuse: adapt to breakup of struct file_lock
lockd: adapt to breakup of struct file_lock
nfs: adapt to breakup of struct file_lock
nfsd: adapt to breakup of struct file_lock
ocfs2: adapt to breakup of struct file_lock
smb/client: adapt to breakup of struct file_lock
smb/server: adapt to breakup of struct file_lock
filelock: remove temporary compatibility macros
filelock: split leases out of struct file_lock

 fs/9p/vfs_file.c                |  40 +-
 fs/afs/flock.c                  |  60 +--
 fs/ceph/locks.c                 |  74 ++--
 fs/dlm/plock.c                  |  44 +--
 fs/fuse/file.c                  |  14 +-
 fs/gfs2/file.c                  |  16 +-
 fs/libfs.c                      |   2 +-
 fs/lockd/clnt4xdr.c             |  14 +-
 fs/lockd/clntlock.c             |   2 +-
 fs/lockd/clntproc.c             |  65 +--
 fs/lockd/clntxdr.c              |  14 +-
 fs/lockd/svc4proc.c             |  10 +-
 fs/lockd/svclock.c              |  64 +--
 fs/lockd/svcproc.c              |  10 +-
 fs/lockd/svcsubs.c              |  24 +-
 fs/lockd/xdr.c                  |  14 +-
 fs/lockd/xdr4.c                 |  14 +-
 fs/locks.c                      | 851 ++++++++++++++++++++++------------------
 fs/nfs/delegation.c             |   4 +-
 fs/nfs/file.c                   |  22 +-
 fs/nfs/nfs3proc.c               |   2 +-
 fs/nfs/nfs4_fs.h                |   2 +-
 fs/nfs/nfs4file.c               |   2 +-
 fs/nfs/nfs4proc.c               |  39 +-
 fs/nfs/nfs4state.c              |  22 +-
 fs/nfs/nfs4trace.h              |   4 +-
 fs/nfs/nfs4xdr.c                |   8 +-
 fs/nfs/write.c                  |   8 +-
 fs/nfsd/filecache.c             |   4 +-
 fs/nfsd/nfs4callback.c          |   2 +-
 fs/nfsd/nfs4layouts.c           |  34 +-
 fs/nfsd/nfs4state.c             | 120 +++---
 fs/ocfs2/locks.c                |  12 +-
 fs/ocfs2/stack_user.c           |   2 +-
 fs/open.c                       |   2 +-
 fs/posix_acl.c                  |   4 +-
 fs/smb/client/cifsfs.c          |   2 +-
 fs/smb/client/cifssmb.c         |   8 +-
 fs/smb/client/file.c            |  78 ++--
 fs/smb/client/smb2file.c        |   2 +-
 fs/smb/server/smb2pdu.c         |  44 +--
 fs/smb/server/vfs.c             |  14 +-
 include/linux/filelock.h        | 103 +++--
 include/linux/fs.h              |   5 +-
 include/linux/lockd/lockd.h     |   8 +-
 include/linux/lockd/xdr.h       |   2 +-
 include/trace/events/afs.h      |   4 +-
 include/trace/events/filelock.h | 102 ++---
 48 files changed, 1064 insertions(+), 933 deletions(-)

---
base-commit: e96efe9f69ebb12b38c722c159413fd6850b782c
change-id: 20240116-flsplit-bdb46824db68

Best regards,

Signature · 1 line
Jeff Layton <[email protected]>