summaryrefslogtreecommitdiff
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-06-13 10:27:53 -0700
committerSage Weil <sage@newdream.net>2010-06-13 10:34:36 -0700
commit4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5 (patch)
tree381f3bac8bb564a4666f48a0d6d459b0a2bbbba7 /fs/ceph
parent0cf5537b158caae42bcc03f0f6db10f68585b1ec (diff)
downloadlinux-3.10-4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5.tar.gz
linux-3.10-4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5.tar.bz2
linux-3.10-4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5.zip
ceph: fix map handler error path
Don't leak message if we receive an unexpected message type. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/osd_client.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ceph/osd_client.c b/fs/ceph/osd_client.c
index d25b4add85b..92b7251a53f 100644
--- a/fs/ceph/osd_client.c
+++ b/fs/ceph/osd_client.c
@@ -1344,7 +1344,7 @@ static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
int type = le16_to_cpu(msg->hdr.type);
if (!osd)
- return;
+ goto out;
osdc = osd->o_osdc;
switch (type) {
@@ -1359,6 +1359,7 @@ static void dispatch(struct ceph_connection *con, struct ceph_msg *msg)
pr_err("received unknown message type %d %s\n", type,
ceph_msg_type_name(type));
}
+out:
ceph_msg_put(msg);
}