From 10bd1917f82822c68c1a5c3001142f9d8e8ed0df Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 20 Jul 2012 15:22:53 -0700 Subject: [PATCH] --- yaml --- r: 320361 b: refs/heads/master c: 3b5ede07b55b52c3be27749d183d87257d032065 h: refs/heads/master i: 320359: 6fd72866b134296945c239d98ac416449b4b1cff v: v3 --- [refs] | 2 +- trunk/net/ceph/messenger.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 7423d8c86dc0..fb7f69b8b57a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 070c633f60c23a89c226eb696f4a17b08a164b10 +refs/heads/master: 3b5ede07b55b52c3be27749d183d87257d032065 diff --git a/trunk/net/ceph/messenger.c b/trunk/net/ceph/messenger.c index 07204f19e856..9aaf539942ac 100644 --- a/trunk/net/ceph/messenger.c +++ b/trunk/net/ceph/messenger.c @@ -2330,22 +2330,23 @@ static void con_work(struct work_struct *work) */ static void ceph_fault(struct ceph_connection *con) { + mutex_lock(&con->mutex); + pr_err("%s%lld %s %s\n", ENTITY_NAME(con->peer_name), ceph_pr_addr(&con->peer_addr.in_addr), con->error_msg); dout("fault %p state %lu to peer %s\n", con, con->state, ceph_pr_addr(&con->peer_addr.in_addr)); - if (test_bit(LOSSYTX, &con->flags)) { - dout("fault on LOSSYTX channel\n"); - goto out; - } - - mutex_lock(&con->mutex); if (test_bit(CLOSED, &con->state)) goto out_unlock; con_close_socket(con); + if (test_bit(LOSSYTX, &con->flags)) { + dout("fault on LOSSYTX channel\n"); + goto out_unlock; + } + if (con->in_msg) { BUG_ON(con->in_msg->con != con); con->in_msg->con = NULL; @@ -2392,7 +2393,6 @@ static void ceph_fault(struct ceph_connection *con) out_unlock: mutex_unlock(&con->mutex); -out: /* * in case we faulted due to authentication, invalidate our * current tickets so that we can get new ones.