summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-11-23 14:23:13 -0800
committerSage Weil <sage@newdream.net>2009-11-23 14:23:13 -0800
commit3c9fa270b6327eaa967c8fcd1d5d0a04a2674f7f (patch)
tree0c509e6df340722586231a38718619c52f513b0b
parentcf28787c7b10185ccecc0aefcda00d339f28bcf5 (diff)
downloadceph-3c9fa270b6327eaa967c8fcd1d5d0a04a2674f7f.tar.gz
msgr: fix bad unlock on tcp_write error
-rw-r--r--src/msg/SimpleMessenger.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc
index 6eda255824b..7e9eb341096 100644
--- a/src/msg/SimpleMessenger.cc
+++ b/src/msg/SimpleMessenger.cc
@@ -814,12 +814,12 @@ int SimpleMessenger::Pipe::accept()
rc = tcp_write(sd, (char*)&reply, sizeof(reply));
if (rc < 0)
- goto fail;
+ goto fail_unlocked;
if (reply.authorizer_len) {
rc = tcp_write(sd, authorizer_reply.c_str(), authorizer_reply.length());
if (rc < 0)
- goto fail;
+ goto fail_unlocked;
}
lock.Lock();
@@ -832,8 +832,6 @@ int SimpleMessenger::Pipe::accept()
return 0; // success.
- fail:
- rank->lock.Unlock();
fail_unlocked:
lock.Lock();
state = STATE_CLOSED;