From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Aring Date: Mon, 19 Oct 2020 14:59:07 -0400 Subject: [Cluster-devel] [PATCH dlm/next 0/9] fs: dlm: fixes and change listen socket handling Message-ID: <20201019185916.707827-1-aahringo@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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