summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authormajianpeng <majianpeng@gmail.com>2013-06-25 14:48:19 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-09 12:24:25 -0800
commitd5f9a684f9f21324fa58e97be127589db6c06a56 (patch)
treed83fa26b5bf6225288db1e0f8ea540f032ae76a3 /fs
parent9a640548c96a4cc18394550ecce2241186f7357f (diff)
downloadlinux-3.10-d5f9a684f9f21324fa58e97be127589db6c06a56.tar.gz
linux-3.10-d5f9a684f9f21324fa58e97be127589db6c06a56.tar.bz2
linux-3.10-d5f9a684f9f21324fa58e97be127589db6c06a56.zip
ceph: Free mdsc if alloc mdsc->mdsmap failed.
commit fb3101b6f0db9ae3f35dc8e6ec908d0af8cdf12e upstream. Signed-off-by: Jianpeng Ma <majianpeng@gmail.com> Reviewed-by: Sage Weil <sage@inktank.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/ceph/mds_client.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 1ce14c18c46..63c789eb1e3 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -3044,8 +3044,10 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc)
fsc->mdsc = mdsc;
mutex_init(&mdsc->mutex);
mdsc->mdsmap = kzalloc(sizeof(*mdsc->mdsmap), GFP_NOFS);
- if (mdsc->mdsmap == NULL)
+ if (mdsc->mdsmap == NULL) {
+ kfree(mdsc);
return -ENOMEM;
+ }
init_completion(&mdsc->safe_umount_waiters);
init_waitqueue_head(&mdsc->session_close_wq);