summary refs log tree commit diff
path: root/net/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-05-12 15:33:17 -0700
committerSage Weil <sage@newdream.net>2011-05-19 11:25:04 -0700
commit04177882265bc5014300a631e7384f8fe6b6aa0f (patch)
treea008861b5c815be69cd4a6a074369359afd27904 /net/ceph
parentda39822c6565095a0151ccf9d6b95e2ae5612885 (diff)
downloadlinux-04177882265bc5014300a631e7384f8fe6b6aa0f.tar.gz
libceph: fix TAG_WAIT case
If we get a WAIT as a client something went wrong; error out.  And don't
fall through to an unrelated case.

Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'net/ceph')
-rw-r--r--net/ceph/messenger.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 3cdbb8853cd7..35c0000a658e 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -1355,7 +1355,9 @@ static int process_connect(struct ceph_connection *con)
 		 * to WAIT.  This shouldn't happen if we are the
 		 * client.
 		 */
-		pr_err("process_connect peer connecting WAIT\n");
+		pr_err("process_connect got WAIT as client\n");
+		con->error_msg = "protocol error, got WAIT as client";
+		return -1;
 
 	default:
 		pr_err("connect protocol error, will retry\n");