libceph: use con get/put ops from osd_client
authorSage Weil <sage@inktank.com>
Fri, 1 Jun 2012 03:22:18 +0000 (20:22 -0700)
committerAlex Elder <elder@dreamhost.com>
Wed, 6 Jun 2012 14:23:54 +0000 (09:23 -0500)
commit0d47766f14211a73eaf54cab234db134ece79f49
treed4e09ddd5e3bc4e3f5738bfd873636eb76742de0
parentab8cb34a4b2f60281a4b18b1f1ad23bc2313d91b
libceph: use con get/put ops from osd_client

There were a few direct calls to ceph_con_{get,put}() instead of the con
ops from osd_client.c.  This is a bug since those ops aren't defined to
be ceph_con_get/put.

This breaks refcounting on the ceph_osd structs that contain the
ceph_connections, and could lead to all manner of strangeness.

The purpose of the ->get and ->put methods in a ceph connection are
to allow the connection to indicate it has a reference to something
external to the messaging system, *not* to indicate something
external has a reference to the connection.

[elder@inktank.com: added that last sentence]

Signed-off-by: Sage Weil <sage@newdream.net>
Reviewed-by: Alex Elder <elder@inktank.com>
net/ceph/osd_client.c