From: Alexander Aring <aahringo@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH dlm/next 4/7] fs: dlm: fix race setting stop tx flag
Date: Thu, 12 Jan 2023 17:10:34 -0500 [thread overview]
Message-ID: <20230112221037.1882548-4-aahringo@redhat.com> (raw)
In-Reply-To: <20230112221037.1882548-1-aahringo@redhat.com>
This patch changes to set the stop tx flag before we commit the dlm
message. This flag will report about unexpected transmissions after we
send the DLM_FIN messages out which should be the last message which is
send out. When we commit the dlm fin message it could be that we already
got an ack back and the FIN until CLOSED state change already happened.
We should not set this flag when we are in CLOSED state, to avoid this
race we simple set the tx flag before the state change can be in
progress by moving it before dlm_midcomms_commit_mhandle().
Cc: stable at vger.kernel.org
Fixes: 489d8e559c65 ("fs: dlm: add reliable connection if reconnect")
Signed-off-by: Alexander Aring <aahringo@redhat.com>
---
fs/dlm/midcomms.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
index a3eb19c8cec5..9d459d5bf800 100644
--- a/fs/dlm/midcomms.c
+++ b/fs/dlm/midcomms.c
@@ -406,6 +406,7 @@ static int dlm_send_fin(struct midcomms_node *node,
if (!mh)
return -ENOMEM;
+ set_bit(DLM_NODE_FLAG_STOP_TX, &node->flags);
mh->ack_rcv = ack_rcv;
m_header = (struct dlm_header *)ppc;
@@ -417,7 +418,6 @@ static int dlm_send_fin(struct midcomms_node *node,
pr_debug("sending fin msg to node %d\n", node->nodeid);
dlm_midcomms_commit_mhandle(mh, NULL, 0);
- set_bit(DLM_NODE_FLAG_STOP_TX, &node->flags);
return 0;
}
--
2.31.1
next prev parent reply other threads:[~2023-01-12 22:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-12 22:10 [Cluster-devel] [PATCH dlm/next 1/7] fs: dlm: start first midcomms then scand Alexander Aring
2023-01-12 22:10 ` [Cluster-devel] [PATCH dlm/next 2/7] fs: dlm: fix use after free in midcomms commit Alexander Aring
2023-01-12 22:10 ` [Cluster-devel] [PATCH dlm/next 3/7] fs: dlm: be sure to call dlm_send_queue_flush() Alexander Aring
2023-01-12 22:10 ` Alexander Aring [this message]
2023-01-12 22:10 ` [Cluster-devel] [PATCH dlm/next 5/7] fs: dlm: don't set stop rx flag after node reset Alexander Aring
2023-01-12 22:10 ` [Cluster-devel] [PATCH dlm/next 6/7] fs: dlm: move sending fin message into state change handling Alexander Aring
2023-01-12 22:10 ` [Cluster-devel] [PATCH dlm/next 7/7] fs: dlm: send FIN ack back in right cases 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=20230112221037.1882548-4-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).