From 41c5e489483f62b9576cd28732789fd2aaad87d4 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Wed, 23 May 2012 14:35:23 -0500 Subject: [PATCH] --- yaml --- r: 320296 b: refs/heads/master c: 3ec50d1868a9e0493046400bb1fdd054c7f64ebd h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ceph/messenger.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d06ccb06d21b..b515831ebb68 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bb9e6bba5d8b85b631390f8dbe8a24ae1ff5b48a +refs/heads/master: 3ec50d1868a9e0493046400bb1fdd054c7f64ebd diff --git a/trunk/net/ceph/messenger.c b/trunk/net/ceph/messenger.c index beee382d784e..500207bad5d6 100644 --- a/trunk/net/ceph/messenger.c +++ b/trunk/net/ceph/messenger.c @@ -1562,6 +1562,7 @@ static int process_connect(struct ceph_connection *con) fail_protocol(con); return -1; } + clear_bit(NEGOTIATING, &con->state); clear_bit(CONNECTING, &con->state); con->peer_global_seq = le32_to_cpu(con->in_reply.global_seq); con->connect_seq++; @@ -1951,7 +1952,6 @@ static int try_write(struct ceph_connection *con) /* open the socket first? */ if (con->sock == NULL) { - clear_bit(NEGOTIATING, &con->state); set_bit(CONNECTING, &con->state); con_out_kvec_reset(con); @@ -2190,10 +2190,12 @@ static void con_work(struct work_struct *work) mutex_lock(&con->mutex); restart: if (test_and_clear_bit(SOCK_CLOSED, &con->flags)) { - if (test_and_clear_bit(CONNECTING, &con->state)) + if (test_and_clear_bit(CONNECTING, &con->state)) { + clear_bit(NEGOTIATING, &con->state); con->error_msg = "connection failed"; - else + } else { con->error_msg = "socket closed"; + } goto fault; }