linux-stable/fs/dlm
Alexander Aring 5c7403f952 dlm: fix plock lookup when using multiple lockspaces
commit 7c53e847ff upstream.

All posix lock ops, for all lockspaces (gfs2 file systems) are
sent to userspace (dlm_controld) through a single misc device.
The dlm_controld daemon reads the ops from the misc device
and sends them to other cluster nodes using separate, per-lockspace
cluster api communication channels.  The ops for a single lockspace
are ordered at this level, so that the results are received in
the same sequence that the requests were sent.  When the results
are sent back to the kernel via the misc device, they are again
funneled through the single misc device for all lockspaces.  When
the dlm code in the kernel processes the results from the misc
device, these results will be returned in the same sequence that
the requests were sent, on a per-lockspace basis.  A recent change
in this request/reply matching code missed the "per-lockspace"
check (fsid comparison) when matching request and reply, so replies
could be incorrectly matched to requests from other lockspaces.

Cc: stable@vger.kernel.org
Reported-by: Barry Marson <bmarson@redhat.com>
Fixes: 57e2c2f2d9 ("fs: dlm: fix mismatch of plock results from userspace")
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-09-13 09:48:41 +02:00
..
Kconfig fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
Makefile fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
ast.c fs: dlm: clear pending bit when queue was empty 2023-07-23 13:54:02 +02:00
ast.h fs: dlm: use a non-static queue for callbacks 2022-11-08 12:59:41 -06:00
config.c fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
config.h fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
debug_fs.c fs: dlm: move internal flags to atomic ops 2023-03-06 15:49:07 -06:00
dir.c dlm: use __le types for dlm header 2022-04-06 14:02:28 -05:00
dir.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
dlm_internal.h fs: dlm: switch lkb_sbflags to atomic ops 2023-03-06 15:49:07 -06:00
lock.c fs: dlm: stop unnecessarily filling zero ms_extra bytes 2023-04-21 11:46:47 -05:00
lock.h fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
lockspace.c fs: dlm: revert check required context while close 2023-07-23 13:53:57 +02:00
lockspace.h fs: dlm: revert check required context while close 2023-07-23 13:53:57 +02:00
lowcomms.c fs: dlm: fix missing pending to false 2023-07-23 13:54:02 +02:00
lowcomms.h fs: dlm: remove socket shutdown handling 2022-11-21 09:45:49 -06:00
lvb_table.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
main.c fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
member.c fs: dlm: catch dlm_add_member() error 2022-11-08 12:59:41 -06:00
member.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
memory.c fs: dlm: change dflags to use atomic bits 2023-03-06 15:49:07 -06:00
memory.h fs: dlm: allow different allocation context per _create_message 2022-11-08 12:59:41 -06:00
midcomms.c fs: dlm: revert check required context while close 2023-07-23 13:53:57 +02:00
midcomms.h fs: dlm: wait until all midcomms nodes detect version 2023-01-23 14:58:19 -06:00
plock.c dlm: fix plock lookup when using multiple lockspaces 2023-09-13 09:48:41 +02:00
rcom.c fs: dlm: change dflags to use atomic bits 2023-03-06 15:49:07 -06:00
rcom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
recover.c fs: dlm: move internal flags to atomic ops 2023-03-06 15:49:07 -06:00
recover.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
recoverd.c fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
recoverd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
requestqueue.c fs: dlm: avoid false-positive checker warning 2022-11-21 09:45:49 -06:00
requestqueue.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 2019-05-30 11:29:21 -07:00
user.c fs: dlm: move internal flags to atomic ops 2023-03-06 15:49:07 -06:00
user.h fs: dlm: use a non-static queue for callbacks 2022-11-08 12:59:41 -06:00
util.c dlm: use __le types for dlm messages 2022-04-06 14:02:37 -05:00
util.h dlm: use __le types for dlm messages 2022-04-06 14:02:37 -05:00