diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index 7e27cabb04ef..776d5ab24af6 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -2983,6 +2983,11 @@ static void con_fault(struct ceph_connection *con) ceph_msg_put(con->in_msg); con->in_msg = NULL; } + if (con->out_msg) { + BUG_ON(con->out_msg->con != con); + ceph_msg_put(con->out_msg); + con->out_msg = NULL; + } /* Requeue anything that hasn't been acked */ list_splice_init(&con->out_sent, &con->out_queue);