Patchwork [3.5.yuz,extended,stable] Patch "libceph: clear CONNECTING in ceph_con_close()" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Nov. 20, 2012, 5:17 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/200443/
State New
Headers show


Herton Ronaldo Krzesinski - Nov. 20, 2012, 5:17 p.m.
This is a note to let you know that I have just added a patch titled

    libceph: clear CONNECTING in ceph_con_close()

to the linux-3.5.y-queue branch of the 3.5.yuz extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.yuz tree, see



From 92b677d071a1d0406356d5a9d0e2b78c0735f95f Mon Sep 17 00:00:00 2001
From: Alex Elder <>
Date: Wed, 20 Jun 2012 21:53:53 -0500
Subject: [PATCH 36/78] libceph: clear CONNECTING in ceph_con_close()

commit bb9e6bba5d8b85b631390f8dbe8a24ae1ff5b48a upstream.

A connection that is closed will no longer be connecting.  So
clear the CONNECTING state bit in ceph_con_close().  Similarly,
if the socket has been closed we no longer are in connecting
state (a new connect sequence will need to be initiated).

Signed-off-by: Alex Elder <>
Reviewed-by: Sage Weil <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 net/ceph/messenger.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index dfff350..5e8033f 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -462,6 +462,7 @@  void ceph_con_close(struct ceph_connection *con)
 	dout("con_close %p peer %s\n", con,
 	clear_bit(NEGOTIATING, &con->state);
+	clear_bit(CONNECTING, &con->state);
 	clear_bit(STANDBY, &con->state);  /* avoid connect_seq bump */
 	set_bit(CLOSED, &con->state);

@@ -2189,7 +2190,7 @@  static void con_work(struct work_struct *work)
 	if (test_and_clear_bit(SOCK_CLOSED, &con->flags)) {
-		if (test_bit(CONNECTING, &con->state))
+		if (test_and_clear_bit(CONNECTING, &con->state))
 			con->error_msg = "connection failed";
 			con->error_msg = "socket closed";