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