summaryrefslogtreecommitdiffstats
path: root/fs/ceph/osd_client.c
diff options
context:
space:
mode:
authorSage Weil2009-11-18 20:22:36 +0100
committerSage Weil2009-11-18 20:29:42 +0100
commit42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6 (patch)
treed9c65553d783b2dd0fff7489be15e314fa78203f /fs/ceph/osd_client.c
parentceph: fix page invalidation deadlock (diff)
downloadkernel-qcow2-linux-42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6.tar.gz
kernel-qcow2-linux-42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6.tar.xz
kernel-qcow2-linux-42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6.zip
ceph: remove bad calls to ceph_con_shutdown
We want to ceph_con_close when we're done with the connection, before the ref count reaches 0. Once it does, do not call ceph_con_shutdown, as that takes the con mutex and may sleep, and besides that is unnecessary. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/osd_client.c')
-rw-r--r--fs/ceph/osd_client.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/ceph/osd_client.c b/fs/ceph/osd_client.c
index 7db14ba6261c..bcb9fe693076 100644
--- a/fs/ceph/osd_client.c
+++ b/fs/ceph/osd_client.c
@@ -350,10 +350,8 @@ static void put_osd(struct ceph_osd *osd)
{
dout("put_osd %p %d -> %d\n", osd, atomic_read(&osd->o_ref),
atomic_read(&osd->o_ref) - 1);
- if (atomic_dec_and_test(&osd->o_ref)) {
- ceph_con_shutdown(&osd->o_con);
+ if (atomic_dec_and_test(&osd->o_ref))
kfree(osd);
- }
}
/*