[Cluster-devel] [PATCHv2 dlm-next 00/13] fs: dlm: miscs and msgs processing changes

Alexander Aring aahringo at redhat.com
Tue Aug 1 18:09:37 UTC 2023


Hi,

this patch fixes some missing spin_unlock() that was missing in commit
dc52cd2eff4a ("fs: dlm: fix F_CANCELLK to cancel pending request").
Otherwise this patch series contains:

- introduce a new debugfs entry to dump all pending callbacks in the per
  lkb callbacks queue.
- add plock char dev kernel tracepoints for debugging
- change things in parsing/processing dlm messages like only once
  dereferencing the sequence number of dlm recovery and avoid an additional
  spinlock later
- constify the dlm receive buffer, it should never be manipulated when
  parsing it.
- small change in version detection to not use RCOM_NAMES messages
- change to create midcomms node when configfs gets the cluster
  configuration

I try to prepare to switch the message processing from workqueue
context to softirq context. The patch "fs: dlm: create midcomms nodes
when configure" will remove creating midcomms nodes that create debugfs
entries from the message parsing context. The context for creating debugfs
entries is sleepable. The lifetime of a midcomms node is now similar like
lowcomms connection struct. Later we hopefully can merge the two hash
datastructures midcomms nodes and lowcomms connections into one.

- Alex

changes since v2:

- add a cover-letter
- fix a deadlock case in "fs: dlm: create midcomms nodes when configure"

Alexander Aring (13):
  fs: dlm: add missing spin_unlock
  fs: dlm: remove unused processed_nodes
  fs: dlm: debugfs for queued callbacks
  fs: dlm: check on plock ops when exit dlm
  fs: dlm: add plock dev tracepoints
  fs: dlm: remove clear_members_cb
  fs: dlm: cleanup lock order
  fs: dlm: get recovery sequence number as parameter
  fs: dlm: drop rxbuf manipulation in dlm_copy_master_names
  fs: dlm: drop rxbuf manipulation in dlm_recover_master_copy
  fs: dlm: constify receive buffer
  fs: dlm: create midcomms nodes when configure
  fs: dlm: don't use RCOM_NAMES for version detection

 fs/dlm/config.c            |   2 +-
 fs/dlm/debug_fs.c          | 101 +++++++++++-
 fs/dlm/dir.c               |  14 +-
 fs/dlm/dir.h               |   6 +-
 fs/dlm/dlm_internal.h      |   1 +
 fs/dlm/lock.c              | 120 ++++++++-------
 fs/dlm/lock.h              |  16 +-
 fs/dlm/lowcomms.c          |   1 -
 fs/dlm/member.c            |  15 +-
 fs/dlm/member.h            |   2 +-
 fs/dlm/midcomms.c          | 304 ++++++++++++++-----------------------
 fs/dlm/midcomms.h          |   1 +
 fs/dlm/plock.c             |   9 ++
 fs/dlm/rcom.c              | 102 +++++++------
 fs/dlm/rcom.h              |  15 +-
 fs/dlm/recover.c           |  60 ++++----
 fs/dlm/recover.h           |  14 +-
 fs/dlm/recoverd.c          |  16 +-
 fs/dlm/requestqueue.c      |   3 +-
 fs/dlm/requestqueue.h      |   3 +-
 include/trace/events/dlm.h |  51 +++++++
 21 files changed, 489 insertions(+), 367 deletions(-)

-- 
2.31.1



More information about the Cluster-devel mailing list