ceph: fix theoretically possible double-put on connection
authorSage Weil <sage@newdream.net>
Thu, 25 Mar 2010 04:30:19 +0000 (21:30 -0700)
committerSage Weil <sage@newdream.net>
Mon, 17 May 2010 22:25:14 +0000 (15:25 -0700)
This would only trigger if we bailed out before resetting r_con_filling_msg
because the server reply was corrupt (oversized).

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/osd_client.c

index 22a33f8c8807b9603a75aef98242bae2bf6e2108..3d2bfbc232dc7575c78ce1de56fabbc6de2b3303 100644 (file)
@@ -1386,6 +1386,7 @@ static struct ceph_msg *get_reply(struct ceph_connection *con,
                     req->r_reply, req->r_con_filling_msg);
                ceph_con_revoke_message(req->r_con_filling_msg, req->r_reply);
                ceph_con_put(req->r_con_filling_msg);
+               req->r_con_filling_msg = NULL;
        }
 
        if (front > req->r_reply->front.iov_len) {