* [Cluster-devel] [PATCH] dlm: More othercon fixes
@ 2007-08-02 13:58 Patrick Caulfield
2007-08-02 15:08 ` Steven Whitehouse
0 siblings, 1 reply; 3+ messages in thread
From: Patrick Caulfield @ 2007-08-02 13:58 UTC (permalink / raw)
To: cluster-devel.redhat.com
The last patch to clean out 'othercon' structures only fixed half the problem.
The attached addresses the other situations too, and fixes bz#238490
Signed-Off-By: Patrick Caulfield <pcaulfie@redhat.com>
Patrick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: othercon2.patch
Type: text/x-patch
Size: 2006 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/cluster-devel/attachments/20070802/963eacf9/attachment.bin>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Cluster-devel] [PATCH] dlm: More othercon fixes
2007-08-02 13:58 [Cluster-devel] [PATCH] dlm: More othercon fixes Patrick Caulfield
@ 2007-08-02 15:08 ` Steven Whitehouse
0 siblings, 0 replies; 3+ messages in thread
From: Steven Whitehouse @ 2007-08-02 15:08 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
On Thu, 2007-08-02 at 14:58 +0100, Patrick Caulfield wrote:
> The last patch to clean out 'othercon' structures only fixed half the problem.
> The attached addresses the other situations too, and fixes bz#238490
>
> Signed-Off-By: Patrick Caulfield <pcaulfie@redhat.com>
>
> Patrick
>
>
Now in the -nmw git tree. Thanks,
Steve.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Cluster-devel] [PATCH] [DLM] More othercon fixes
2007-08-14 9:47 [Cluster-devel] [PATCH] [DLM] Clear othercon pointers when a connection is closed swhiteho
@ 2007-08-14 9:47 ` swhiteho
0 siblings, 0 replies; 3+ messages in thread
From: swhiteho @ 2007-08-14 9:47 UTC (permalink / raw)
To: cluster-devel.redhat.com
From: Patrick Caulfield <pcaulfie@redhat.com>
The last patch to clean out 'othercon' structures only fixed half the problem.
The attached addresses the other situations too, and fixes bz#238490
Signed-Off-By: Patrick Caulfield <pcaulfie@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 631bc43..9e9d2e8 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -328,15 +328,24 @@ static void close_connection(struct connection *con, bool and_other)
if (con->othercon && and_other) {
/* Will only re-enter once. */
close_connection(con->othercon, false);
- kmem_cache_free(con_cache, con->othercon);
- con->othercon = NULL;
}
if (con->rx_page) {
__free_page(con->rx_page);
con->rx_page = NULL;
}
- con->retries = 0;
- mutex_unlock(&con->sock_mutex);
+
+ /* If we are an 'othercon' then NULL the pointer to us
+ from the parent and tidy ourself up */
+ if (test_bit(CF_IS_OTHERCON, &con->flags)) {
+ struct connection *parent = __nodeid2con(con->nodeid, 0);
+ parent->othercon = NULL;
+ kmem_cache_free(con_cache, con);
+ }
+ else {
+ /* Parent connections get reused */
+ con->retries = 0;
+ mutex_unlock(&con->sock_mutex);
+ }
}
/* We only send shutdown messages to nodes that are not part of the cluster */
@@ -634,7 +643,7 @@ out_resched:
out_close:
mutex_unlock(&con->sock_mutex);
- if (ret != -EAGAIN && !test_bit(CF_IS_OTHERCON, &con->flags)) {
+ if (ret != -EAGAIN) {
close_connection(con, false);
/* Reconnect when there is something to send */
}
@@ -1125,8 +1134,6 @@ static int tcp_listen_for_all(void)
log_print("Using TCP for communications");
- set_bit(CF_IS_OTHERCON, &con->flags);
-
sock = tcp_create_listen_sock(con, dlm_local_addr[0]);
if (sock) {
add_sock(sock, con);
@@ -1410,7 +1417,7 @@ void dlm_lowcomms_stop(void)
for (i = 0; i <= max_nodeid; i++) {
con = __nodeid2con(i, 0);
if (con) {
- con->flags |= 0xFF;
+ con->flags |= 0x0F;
if (con->sock)
con->sock->sk->sk_user_data = NULL;
}
@@ -1426,8 +1433,6 @@ void dlm_lowcomms_stop(void)
con = __nodeid2con(i, 0);
if (con) {
close_connection(con, true);
- if (con->othercon)
- kmem_cache_free(con_cache, con->othercon);
kmem_cache_free(con_cache, con);
}
}
--
1.5.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-08-14 9:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-02 13:58 [Cluster-devel] [PATCH] dlm: More othercon fixes Patrick Caulfield
2007-08-02 15:08 ` Steven Whitehouse
-- strict thread matches above, loose matches on Subject: below --
2007-08-14 9:47 [Cluster-devel] [PATCH] [DLM] Clear othercon pointers when a connection is closed swhiteho
2007-08-14 9:47 ` [Cluster-devel] [PATCH] [DLM] More othercon fixes swhiteho
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.