]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Keep a reference count on Connection while calling send_message() 5815/head
authorNathan Cutler <ncutler@suse.com>
Fri, 4 Sep 2015 15:38:32 +0000 (17:38 +0200)
committerNathan Cutler <ncutler@suse.com>
Sat, 5 Sep 2015 08:05:54 +0000 (10:05 +0200)
Fixes: #12437
Signed-off-by: David Zafman <dzafman@redhat.com>
(manual backport of commit a140085)

Conflicts:      src/osd/OSD.cc
                   master has share_map_peer; firefly has osd->_share_map_outgoing

src/osd/OSD.cc

index d2c0a341ab8263c064b485b7758de229431eba06..81f188df1f5ebb8b9d3d9ffa821d4c9f16cda1e5 100644 (file)
@@ -3951,8 +3951,8 @@ void OSDService::send_message_osd_cluster(int peer, Message *m, epoch_t from_epo
     return;
   }
   const entity_inst_t& peer_inst = next_osdmap->get_cluster_inst(peer);
-  Connection *peer_con = osd->cluster_messenger->get_connection(peer_inst).get();
-  osd->_share_map_outgoing(peer, peer_con, next_osdmap);
+  ConnectionRef peer_con = osd->cluster_messenger->get_connection(peer_inst);
+  osd->_share_map_outgoing(peer, peer_con.get(), next_osdmap);
   osd->cluster_messenger->send_message(m, peer_inst);
 }