aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/blktap/drivers/tapdisk.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/blktap/drivers/tapdisk.c b/tools/blktap/drivers/tapdisk.c
index 43a037a053..965dbd9b7d 100644
--- a/tools/blktap/drivers/tapdisk.c
+++ b/tools/blktap/drivers/tapdisk.c
@@ -306,8 +306,11 @@ static int open_disk(struct td_state *s, struct tap_disk *drv, char *path)
return -ENOMEM;
err = drv->td_open(d, path, 0);
- if (err)
- goto fail;
+ if (err) {
+ free_driver(d);
+ s->disks = NULL;
+ return -ENOMEM;
+ }
/* load backing files as necessary */
while ((err = d->drv->td_get_parent_id(d, &id)) == 0) {