From efde4b625216b7066b56707d70ae3212edad0eea Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 16 May 2014 11:00:25 +0200 Subject: [PATCH] block/sheepdog: Fix silent sd_open(), sd_create() failures Open and create methods must set an error when they fail. Cc: MORITA Kazutaka Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Signed-off-by: Stefan Hajnoczi --- block/sheepdog.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/block/sheepdog.c b/block/sheepdog.c index 6e2f9812fe..7bf1275546 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -1412,6 +1412,7 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags, ret = parse_vdiname(s, filename, vdi, &snapid, tag); } if (ret < 0) { + error_setg(errp, "Can't parse filename"); goto out; } s->fd = get_sheep_fd(s, errp); @@ -1453,6 +1454,7 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags, closesocket(fd); if (ret) { + error_setg(errp, "Can't read snapshot inode"); goto out; } @@ -1654,6 +1656,7 @@ static int sd_create(const char *filename, QEMUOptionParameter *options, ret = parse_vdiname(s, filename, s->name, &snapid, tag); } if (ret < 0) { + error_setg(errp, "Can't parse filename"); goto out; } @@ -1677,6 +1680,8 @@ static int sd_create(const char *filename, QEMUOptionParameter *options, if (options->value.s) { ret = parse_redundancy(s, options->value.s); if (ret < 0) { + error_setg(errp, "Invalid redundancy mode: '%s'", + options->value.s); goto out; } }