From e7bc8ac9ba7aa869bb962d7ff5c20665daa556d6 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Thu, 25 Apr 2013 23:15:08 -0500 Subject: [PATCH] --- yaml --- r: 373496 b: refs/heads/master c: 5655c4d940ba8dd32250ab1e4ba3db785943a28e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/rbd.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 753963db9181..e2b7dac1de9b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c0fba36880288afbeca872298c970fb4abb76464 +refs/heads/master: 5655c4d940ba8dd32250ab1e4ba3db785943a28e diff --git a/trunk/drivers/block/rbd.c b/trunk/drivers/block/rbd.c index 0ddcbe584a1f..815c174661a8 100644 --- a/trunk/drivers/block/rbd.c +++ b/trunk/drivers/block/rbd.c @@ -4800,16 +4800,20 @@ static int rbd_dev_probe(struct rbd_device *rbd_dev) ret = rbd_dev_v1_probe(rbd_dev); else ret = rbd_dev_v2_probe(rbd_dev); - if (ret) { - dout("probe failed, returning %d\n", ret); - - return ret; - } + if (ret) + goto out_err; ret = rbd_dev_probe_finish(rbd_dev); if (ret) rbd_header_free(&rbd_dev->header); + return ret; +out_err: + kfree(rbd_dev->spec->image_id); + rbd_dev->spec->image_id = NULL; + + dout("probe failed, returning %d\n", ret); + return ret; }