[Cluster-devel] [PATCH dlm/next 0/9] fs: dlm: fixes and change listen socket handling

Alexander Aring aahringo at redhat.com
Mon Oct 19 18:59:07 UTC 2020


Hi,

This series fix a issue by using the wrong RCU API for sleepable rcu.

The second patch is something what I discovered by placing a new header
in front of the dlm header. This header encapsulates a dlm message.
The patch will fix issues with the ci_buffer_size and I am not sure for
what the ci_buffer_size setting is exactly used before, there was no
range protection or something else and it is used for transmit and
receive side. As I saw that the previous receive handling was using it
as the receive buffer size for "bigger" dlm messages, I changed it mostly
the same way and allowed even reading more bytes in a recvmsg(). The user
need somehow know before the actual biggest possible dlm message (which is
PAGE_SIZE, because the buffer allocator of lowcomms). The upper layer
protocol should never request a buffer which can be above PAGE_SIZE length,
otherwise we run in a bufferoverlow. With the recent changes of
"ci_buffer_size" it's allowed to be above PAGE_SIZE, the patch should be
sure we use the maximum possible payload to a dlm recovery message and
don't let this configurable.

The rest of this patch-series makes the listen socket handling better
regarding to accept socket. There exists some code path which the listen
socket should never run, but possible when we handle the listen socket as
normal connection inside the connection hash. This patch series contains
patches to prepare and finally handle the listen connection in their own
separate structure. It also do some small cleanup to avoid double close
on the listen socket and be sure we set the sock pointer to NULL if
closed, some parts of the code seems to have this required.

- Alex

Alexander Aring (9):
  fs: dlm: fix proper srcu api call
  fs: dlm: define max send buffer
  fs: dlm: add get buffer error handling
  fs: dlm: flush othercon at close
  fs: dlm: handle non blocked connect event
  fs: dlm: move connect callback in node creation
  fs: dlm: move shutdown action to node creation
  fs: dlm: refactor sctp sock parameter
  fs: dlm: listen socket out of connection hash

 fs/dlm/lockspace.c |   2 +-
 fs/dlm/lowcomms.c  | 225 +++++++++++++++++++++++----------------------
 fs/dlm/lowcomms.h  |   4 +
 fs/dlm/member.c    |   2 +-
 fs/dlm/rcom.c      |   6 +-
 5 files changed, 122 insertions(+), 117 deletions(-)

-- 
2.26.2




More information about the Cluster-devel mailing list