mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-13 08:39:52 +00:00
rbd: fix image id leak in initial probe
If a format 2 image id is found for an image being mapped, but the subsequent probe of the image fails, rbd_dev_probe() quits without freeing the image id. Fix that. Also drop a redundant hunk of code in rbd_dev_image_id(). Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
parent
c0fba36880
commit
5655c4d940
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user