From: Alexander Aring <aahringo@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [RESEND dlm/next 00/16] fs: dlm: fixes, cleanups and locktorture
Date: Mon, 15 Aug 2022 15:43:12 -0400 [thread overview]
Message-ID: <20220815194328.2208580-1-aahringo@redhat.com> (raw)
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
next reply other threads:[~2022-08-15 19:43 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 19:43 Alexander Aring [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220815194328.2208580-1-aahringo@redhat.com \
--to=aahringo@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).