From: Alexander Aring <aahringo@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 00/13] fs: dlm: fixes and change listen socket handling
Date: Mon, 2 Nov 2020 20:04:15 -0500 [thread overview]
Message-ID: <20201103010428.1009384-1-aahringo@redhat.com> (raw)
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
4096 bytes, because the buffer allocator of lowcomms). The upper layer
protocol should never request a buffer which can be above 4096 bytes,
otherwise we run in a bufferoverlow. With the recent changes of
"ci_buffer_size" it's allowed to be above 4096 bytes, 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
changes since v2:
- define max send buffer to 4096 instead PAGE_SIZE
This has something to do with the DEFAULT_BUFFER_SIZE and maximum
message length of the receive buffer and I don't know all PAGE_SIZE
defines of all supported Linux archs.
- add BUILD_BUG_ON for max send buffer size and PAGE_SIZE
- add helper for connection structure initialization
- use runtime array size variable for multi-home address fix instead
of assign to NULL after free
Alexander Aring (13):
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: add helper for init connection
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: fix check for multi-homed hosts
fs: dlm: constify addr_compare
fs: dlm: check on existing node address
fs/dlm/lockspace.c | 2 +-
fs/dlm/lowcomms.c | 304 ++++++++++++++++++++++++---------------------
fs/dlm/lowcomms.h | 2 +
fs/dlm/member.c | 2 +-
fs/dlm/rcom.c | 6 +-
5 files changed, 168 insertions(+), 148 deletions(-)
--
2.26.2
next reply other threads:[~2020-11-03 1:04 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-03 1:04 Alexander Aring [this message]
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 01/13] fs: dlm: fix proper srcu api call Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 02/13] fs: dlm: define max send buffer Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 03/13] fs: dlm: add get buffer error handling Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 04/13] fs: dlm: flush othercon at close Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 05/13] fs: dlm: handle non blocked connect event Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 06/13] fs: dlm: add helper for init connection Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 07/13] fs: dlm: move connect callback in node creation Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 08/13] fs: dlm: move shutdown action to " Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 09/13] fs: dlm: refactor sctp sock parameter Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 10/13] fs: dlm: listen socket out of connection hash Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 11/13] fs: dlm: fix check for multi-homed hosts Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 12/13] fs: dlm: constify addr_compare Alexander Aring
2020-11-03 1:04 ` [Cluster-devel] [PATCHv2 RESEND v5.10-rc2 13/13] fs: dlm: check on existing node address 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=20201103010428.1009384-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).