linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] lockd: dlm: async lock request changes
@ 2023-08-23 21:33 Alexander Aring
  2023-08-23 21:33 ` [PATCH 1/7] lockd: introduce safe async lock op Alexander Aring
                   ` (6 more replies)
  0 siblings, 7 replies; 27+ messages in thread
From: Alexander Aring @ 2023-08-23 21:33 UTC (permalink / raw)
  To: linux-nfs
  Cc: cluster-devel, ocfs2-devel, linux-fsdevel, teigland, rpeterso,
	agruenba, trond.myklebust, anna, chuck.lever, jlayton

Hi,

I sent this as a PATCH now and drop the RFC. I got some review back from
Jeff Layton and hope I was successful to follow it. There are still
issues with lockd and asynchronous lock request but it will at least not
directly crash when somebody is using nfs on top of GFS2. The issues are
related to cancellation of locks/lockd decides to drop nlm_block for
some reasons while pending request is happening.

I did not change more documentation about the asynchronous lock request
functionality to not confuse users. In my opinion there should be more
documentation about what you SHOULD NOT do with this API. Otherwise I
think the documentation is still correct.

I will send a follow up patch to fsdevel to change all users using
IS_SETLKW() to use FL_SLEEP to determine if it's blocking or non-blocking
and send it to fsdevel as it was recommended. This will just be a grep
and replace patch and look what happens. 

- Alex

changes since RFC:

- drop the pending callback flag but introduce "lockd: don't call
  vfs_lock_file() for pending requests", see patch why I need it.
- drop per nlm_block callback mutex
- change async lock request documentation
- use always FL_SLEEP to determine if it's blocking vs non-blocking in
  DLM

Alexander Aring (7):
  lockd: introduce safe async lock op
  lockd: don't call vfs_lock_file() for pending requests
  lockd: fix race in async lock request handling
  lockd: add doc to enable EXPORT_OP_SAFE_ASYNC_LOCK
  dlm: use fl_owner from lockd
  dlm: use FL_SLEEP to determine blocking vs non-blocking
  dlm: implement EXPORT_OP_SAFE_ASYNC_LOCK

 fs/dlm/plock.c           | 20 +++++---------------
 fs/gfs2/export.c         |  1 +
 fs/lockd/svclock.c       | 40 +++++++++++++++++++++++++++-------------
 fs/locks.c               | 12 +++++++-----
 fs/nfsd/nfs4state.c      | 13 ++++++++++---
 fs/ocfs2/export.c        |  1 +
 include/linux/exportfs.h |  8 ++++++++
 7 files changed, 59 insertions(+), 36 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2024-09-11 14:35 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-23 21:33 [PATCH 0/7] lockd: dlm: async lock request changes Alexander Aring
2023-08-23 21:33 ` [PATCH 1/7] lockd: introduce safe async lock op Alexander Aring
2023-08-25 17:21   ` Chuck Lever
2023-08-30 12:32     ` Alexander Aring
2023-08-30 13:45       ` Chuck Lever
2023-08-25 18:14   ` Jeff Layton
2024-09-10 14:18   ` Benjamin Coddington
2024-09-10 15:45     ` Jeff Layton
2024-09-10 16:56       ` Benjamin Coddington
2024-09-10 17:17         ` Alexander Aring
2024-09-11 13:24         ` Jeff Layton
2024-09-11 14:35           ` Benjamin Coddington
2024-09-10 17:13       ` Alexander Aring
2023-08-23 21:33 ` [PATCH 2/7] lockd: don't call vfs_lock_file() for pending requests Alexander Aring
2023-08-25 18:10   ` Jeff Layton
2023-08-30 12:15     ` Alexander Aring
2023-08-23 21:33 ` [PATCH 3/7] lockd: fix race in async lock request handling Alexander Aring
2023-08-25 17:35   ` Chuck Lever
2023-08-25 18:16   ` Jeff Layton
2023-08-23 21:33 ` [PATCH 4/7] lockd: add doc to enable EXPORT_OP_SAFE_ASYNC_LOCK Alexander Aring
2023-08-25 18:17   ` Jeff Layton
2023-08-23 21:33 ` [PATCH 5/7] dlm: use fl_owner from lockd Alexander Aring
2023-08-23 21:33 ` [PATCH 6/7] dlm: use FL_SLEEP to determine blocking vs non-blocking Alexander Aring
2023-08-25 18:18   ` Jeff Layton
2023-08-30 12:38     ` Alexander Aring
2023-08-30 13:46       ` Jeff Layton
2023-08-23 21:33 ` [PATCH 7/7] dlm: implement EXPORT_OP_SAFE_ASYNC_LOCK Alexander Aring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).