diff options
author | majianpeng <majianpeng@gmail.com> | 2013-06-25 02:48:19 -0400 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-07-03 18:32:53 -0400 |
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) | |||
3042 | fsc->mdsc = mdsc; | 3042 | fsc->mdsc = mdsc; |
3043 | mutex_init(&mdsc->mutex); | 3043 | mutex_init(&mdsc->mutex); |
3044 | mdsc->mdsmap = kzalloc(sizeof(*mdsc->mdsmap), GFP_NOFS); | 3044 | mdsc->mdsmap = kzalloc(sizeof(*mdsc->mdsmap), GFP_NOFS); |
3045 | if (mdsc->mdsmap == NULL) | 3045 | if (mdsc->mdsmap == NULL) { |
3046 | kfree(mdsc); | ||
3046 | return -ENOMEM; | 3047 | return -ENOMEM; |
3048 | } | ||
3047 | 3049 | ||
3048 | init_completion(&mdsc->safe_umount_waiters); | 3050 | init_completion(&mdsc->safe_umount_waiters); |
3049 | init_waitqueue_head(&mdsc->session_close_wq); | 3051 | init_waitqueue_head(&mdsc->session_close_wq); |