ceph: plug msg leak in con_fault

Signed-off-by: Sage Weil <sage@newdream.net>
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index 96fd556..98519bd 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -1434,8 +1434,9 @@
  */
 static void process_message(struct ceph_connection *con)
 {
-	struct ceph_msg *msg = con->in_msg;
+	struct ceph_msg *msg;
 
+	msg = con->in_msg;
 	con->in_msg = NULL;
 
 	/* if first message, set peer_name */
@@ -1810,7 +1811,11 @@
 	clear_bit(BUSY, &con->state);  /* to avoid an improbable race */
 
 	con_close_socket(con);
-	con->in_msg = NULL;
+
+	if (con->in_msg) {
+		ceph_msg_put(con->in_msg);
+		con->in_msg = NULL;
+	}
 
 	/* If there are no messages in the queue, place the connection
 	 * in a STANDBY state (i.e., don't try to reconnect just yet). */