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

2024-02-02 Thread Christian Brauner
On Wed, 31 Jan 2024 18:01:41 -0500, Jeff Layton wrote:
> 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.
> 
> [...]

Fyi, I've merged this series as in I've turned this series into a pull
request based on the patches. And this has a merge commit of the
following form:

commit 363af2435e403ac323ab2543da91f5984047bdb8
Merge: 6613476e225e 6c6109548454
Author: Christian Brauner 
AuthorDate: Fri Feb 2 12:09:26 2024 +0100
Commit: Christian Brauner 
CommitDate: Fri Feb 2 12:09:26 2024 +0100

Merge patch series "filelock: split file leases out of struct file_lock"

Pull file locking patch series from Jeff Layton:

For larger series such as this this is what I think we should end up
doing because it gives bigger series an overall summary without forcing
the author to always provide a tag or branch or whatever. Often the
cover letter description is good for long term contributors already. So
I stole most of it from v1.

Thanks for basing this on a mainline tag!

---

Applied to the vfs.file branch of the vfs/vfs.git tree.
Patches in the vfs.file branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs.file

[01/47] filelock: fl_pid field should be signed int
https://git.kernel.org/vfs/vfs/c/0e9876d8e88d
[02/47] filelock: rename some fields in tracepoints
https://git.kernel.org/vfs/vfs/c/587a67b6830b
[03/47] filelock: rename fl_pid variable in lock_get_status
https://git.kernel.org/vfs/vfs/c/6021d62c677f
[04/47] filelock: add some new helper functions
https://git.kernel.org/vfs/vfs/c/403594111407
[05/47] 9p: rename fl_type variable in v9fs_file_do_lock
https://git.kernel.org/vfs/vfs/c/2911c0e3a5dd
[06/47] afs: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/46a9b98baecc
[07/47] ceph: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/7c82f3103915
[08/47] dlm: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/7851cb526662
[09/47] gfs2: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/47bc8fa51b46
[10/47] lockd: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/b9570e87b652
[11/47] nfs: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/28ad1884a338
[12/47] nfsd: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/4e2cd366d826
[13/47] ocfs2: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/a336b91b2340
[14/47] smb/client: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/39647541cb26
[15/47] smb/server: convert to using new filelock helpers
https://git.kernel.org/vfs/vfs/c/1d9b1c4525f6
[16/47] filelock: drop the IS_* macros
https://git.kernel.org/vfs/vfs/c/22716eba8323
[17/47] filelock: split common fields into struct file_lock_core
https://git.kernel.org/vfs/vfs/c/b2566e35e7d6
[18/47] filelock: have fs/locks.c deal with file_lock_core directly
https://git.kernel.org/vfs/vfs/c/424dc929f8f1
[19/47] filelock: convert more internal functions to use file_lock_core
https://git.kernel.org/vfs/vfs/c/2d1cfb3cf69e
[20/47] filelock: make posix_same_owner take file_lock_core pointers
https://git.kernel.org/vfs/vfs/c/c91b6f218894
[21/47] filelock: convert posix_owner_key to take file_lock_core arg
https://git.kernel.org/vfs/vfs/c/6944d789d1a1
[22/47] filelock: make locks_{insert,delete}_global_locks take file_lock_core 
arg
https://git.kernel.org/vfs/vfs/c/ff30006ce158
[23/47] filelock: convert locks_{insert,delete}_global_blocked
https://git.kernel.org/vfs/vfs/c/b7ae01bb4138
[24/47] filelock: make __locks_delete_block and __locks_wake_up_blocks take 
file_lock_core
https://git.kernel.org/vfs/vfs/c/6ada65e99171
[25/47] filelock: convert __locks_insert_block, conflict and deadlock checks to 
use file_lock_core
https://git.kernel.org/vfs/vfs/c/f449edd19f07
[26/47] filelock: convert fl_blocker to file_lock_core
https://git.kernel.org/vfs/vfs/c/9bb41e6b6ea5
[27/47] filelock: clean up 

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

2024-02-01 Thread NeilBrown
On Thu, 01 Feb 2024, Jeff Layton wrote:
> 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.

For all patches:
  Reviewed-by: NeilBrown 

Thanks Jeff - I think this is a good and useful change and while it
might not all be as pretty as I might like, I don't see any way to
improve it and think it is certainly good enough to merge.

I think the conversion from "fl_core" to "c" does work well enough.
I particularly like how the removal of the IS_* macros (patch 16) turned
out.  The inline expansion of IS_LEASE() in particular makes the code
clearer to me.

Thanks,
NeilBrown


> 
> Thanks!
> 
> Signed-off-by: Jeff Layton 
> ---
> 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/20240125-flsplit-v2-0-7485322b6...@kernel.org
> 
> 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/20240116-flsplit-v1-0-c9d0f4370...@kernel.org
> 
> ---
> 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 +-
>  

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

2024-01-31 Thread Jeff Layton
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!

Signed-off-by: Jeff Layton 
---
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/20240125-flsplit-v2-0-7485322b6...@kernel.org

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/20240116-flsplit-v1-0-c9d0f4370...@kernel.org

---
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