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@inktank.com>
Wed, 20 Jun 2012 12:43:49 +0000 (07:43 -0500)
commit88ed6ea0b295f8e2383d599a04027ec596cdf97b
treee9a49af02373e76a9ce0ed94b4120ccc184a7461
parent680584fab05efff732b5ae16ad601ba994d7b505
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>
(cherry picked from commit 0d47766f14211a73eaf54cab234db134ece79f49)
net/ceph/osd_client.c