diff options
author | Sage Weil <sage@newdream.net> | 2009-11-23 14:23:13 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-11-23 14:23:13 -0800 |
commit | 3c9fa270b6327eaa967c8fcd1d5d0a04a2674f7f (patch) | |
tree | 0c509e6df340722586231a38718619c52f513b0b | |
parent | cf28787c7b10185ccecc0aefcda00d339f28bcf5 (diff) | |
download | ceph-3c9fa270b6327eaa967c8fcd1d5d0a04a2674f7f.tar.gz |
msgr: fix bad unlock on tcp_write error
-rw-r--r-- | src/msg/SimpleMessenger.cc | 6 |
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; |