diff options
author | majianpeng | 2013-06-25 14:48:19 +0800 |
---|---|---|
committer | Sage Weil | 2013-07-03 15:32:53 -0700 |
commit | fb3101b6f0db9ae3f35dc8e6ec908d0af8cdf12e (patch) | |
tree | 14253af04f0012782e4809e64eefbde11115ac23 /fs | |
parent | 0405a1499df42a2b9fd4906096c6bb950e15e850 (diff) |
ceph: Free mdsc if alloc mdsc->mdsmap failed.
Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/mds_client.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 6272c7884e66..3eb1b4470c85 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -3042,8 +3042,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); |