cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [RESEND dlm/next 00/16] fs: dlm: fixes, cleanups and locktorture
@ 2022-08-15 19:43 Alexander Aring
  2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 01/16] fs: dlm: fix race in lowcomms Alexander Aring
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: Alexander Aring @ 2022-08-15 19:43 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hi,

this patch series contains fixes for lowcomms and -EBUSY handling. In
lowcomms we have a race which could end in a use after free. The current
validation of DLM API and between -EBUSY cases vs -EINVAL cases has a
issue because -EINVAL is checked on first but reading variables which
are only valid if there is a non -EBUSY case. To fix it we moved the
-EBUSY case check at first which should be always the first check which
should be done (in case of the current DLM API behaviour and -EBUSY). 

Then there are bunch of cleanup/fixes patches regarding the dlm callback
behaviour. Adding traceevents for dlm user space locks, before we only
captured kernel locks. Another cleanups like constify resource name
parameter prepares dlm for the a new locktorture module.

- Alex

changes since sending on mailinglist:

- fixed some error handling in locktorture if cluster is not
  configured at module init.
- add patch for else if branch for DLM_RCOM
- fixes user space tracing and error assign
- add WARN_ON(1) for -EINVAL case
- cleanup commit message for invalid derefence of sb_lvbptr

Alexander Aring (16):
  fs: dlm: fix race in lowcomms
  fs: dlm: fix race between test_bit() and queue_work()
  fs: dlm: handle -EBUSY as first for lock validation
  fs: dlm: handle -EBUSY as first for unlock validation
  fs: dlm: use __func__ for function name
  fs: dlm: handle -EINVAL as log_error()
  fs: dlm: fix invalid derefence of sb_lvbptr
  fs: dlm: allow lockspaces have zero lvblen
  fs: dlm: handle rcom in else if branch
  fs: dlm: remove dlm_del_ast prototype
  fs: dlm: change ls_clear_proc_locks to spinlock
  fs: dlm: trace user space callbacks
  fs: dlm: move DLM_LSFL_FS out of uapi
  fs: dlm: LSFL_CB_DELAY only for kernel lockspaces
  fs: dlm: const void resource name parameter
  fs: dlm: initial commit of locktorture

 drivers/md/md-cluster.c    |   4 +-
 fs/dlm/Kconfig             |  11 +
 fs/dlm/Makefile            |   1 +
 fs/dlm/ast.c               |  15 +-
 fs/dlm/ast.h               |   1 -
 fs/dlm/dlm_internal.h      |   2 +-
 fs/dlm/dlm_locktorture.c   | 517 +++++++++++++++++++++++++++++++++++++
 fs/dlm/lock.c              | 160 ++++++++----
 fs/dlm/lock.h              |   2 +-
 fs/dlm/lockspace.c         |  32 ++-
 fs/dlm/lockspace.h         |  13 +
 fs/dlm/lowcomms.c          |   4 +
 fs/dlm/user.c              |  17 +-
 fs/gfs2/lock_dlm.c         |   2 +-
 fs/ocfs2/stack_user.c      |   2 +-
 include/linux/dlm.h        |   5 +-
 include/trace/events/dlm.h |  26 +-
 include/uapi/linux/dlm.h   |   1 -
 18 files changed, 718 insertions(+), 97 deletions(-)
 create mode 100644 fs/dlm/dlm_locktorture.c

-- 
2.31.1


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

end of thread, other threads:[~2022-08-15 19:43 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-15 19:43 [Cluster-devel] [RESEND dlm/next 00/16] fs: dlm: fixes, cleanups and locktorture Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 01/16] fs: dlm: fix race in lowcomms Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 02/16] fs: dlm: fix race between test_bit() and queue_work() Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 03/16] fs: dlm: handle -EBUSY as first for lock validation Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 04/16] fs: dlm: handle -EBUSY as first for unlock validation Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 05/16] fs: dlm: use __func__ for function name Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 06/16] fs: dlm: handle -EINVAL as log_error() Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 07/16] fs: dlm: fix invalid derefence of sb_lvbptr Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 08/16] fs: dlm: allow lockspaces have zero lvblen Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 09/16] fs: dlm: handle rcom in else if branch Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 10/16] fs: dlm: remove dlm_del_ast prototype Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 11/16] fs: dlm: change ls_clear_proc_locks to spinlock Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 12/16] fs: dlm: trace user space callbacks Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 13/16] fs: dlm: move DLM_LSFL_FS out of uapi Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 14/16] fs: dlm: LSFL_CB_DELAY only for kernel lockspaces Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 15/16] fs: dlm: const void resource name parameter Alexander Aring
2022-08-15 19:43 ` [Cluster-devel] [RESEND dlm/next 16/16] fs: dlm: initial commit of locktorture 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).