diff options
author | Sage Weil <sage@newdream.net> | 2009-11-18 14:52:18 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-11-18 15:02:36 -0800 |
commit | 5f44f142601bf94c448e2d463f0f18fd159da164 (patch) | |
tree | 773b4677c536519435f073b27873212f705c9c3c /fs/ceph/super.c | |
parent | 71ececdacae24be333c534869cb1b06357f0e215 (diff) | |
download | blackbird-op-linux-5f44f142601bf94c448e2d463f0f18fd159da164.tar.gz blackbird-op-linux-5f44f142601bf94c448e2d463f0f18fd159da164.zip |
ceph: handle errors during osd client init
Unwind initializing if we get ENOMEM during client initialization.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/super.c')
-rw-r--r-- | fs/ceph/super.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c index 1ac7b07214f3..fe0a5962a082 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c @@ -530,9 +530,13 @@ static struct ceph_client *ceph_create_client(struct ceph_mount_args *args) err = ceph_osdc_init(&client->osdc, client); if (err < 0) goto fail_monc; - ceph_mdsc_init(&client->mdsc, client); + err = ceph_mdsc_init(&client->mdsc, client); + if (err < 0) + goto fail_osdc; return client; +fail_osdc: + ceph_osdc_stop(&client->osdc); fail_monc: ceph_monc_stop(&client->monc); fail_trunc_wq: |