summaryrefslogtreecommitdiffstats
path: root/fs/ceph/messenger.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/messenger.c')
-rw-r--r--fs/ceph/messenger.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index 96fd556a7804..98519bd33f04 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -1434,8 +1434,9 @@ no_data:
*/
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 @@ static void ceph_fault(struct ceph_connection *con)
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). */
OpenPOWER on IntegriCloud