* [Qemu-devel] [PATCH v2] block/sheepdog: add error handling to sd_snapshot_delete()
@ 2016-03-22 4:33 Takashi Menjo
2016-03-22 4:51 ` [Qemu-devel] [sheepdog] " Hitoshi Mitake
0 siblings, 1 reply; 2+ messages in thread
From: Takashi Menjo @ 2016-03-22 4:33 UTC (permalink / raw)
To: qemu-devel
Cc: Takashi Menjo, Hitoshi Mitake, Jeff Cody, sheepdog, Vasiliy Tolstov
Errors have been ignored or not propagated in some code paths
in sd_snapshot_delete(). This patch adds error handling.
Cc: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Cc: Jeff Cody <jcody@redhat.com>
Cc: Vasiliy Tolstov <v.tolstov@selfip.ru>
Cc: sheepdog@lists.wpkg.org
Signed-off-by: Takashi Menjo <menjo.takashi@lab.ntt.co.jp>
---
block/sheepdog.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/block/sheepdog.c b/block/sheepdog.c
index a3aeae4..39d13d2 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -2565,6 +2565,7 @@ static int sd_snapshot_delete(BlockDriverState *bs,
SheepdogVdiRsp *rsp = (SheepdogVdiRsp *)&hdr;
if (!remove_objects(s)) {
+ error_setg(errp, "failed to discard snapshot inode");
return -1;
}
@@ -2588,12 +2589,13 @@ static int sd_snapshot_delete(BlockDriverState *bs,
ret = find_vdi_name(s, s->name, snap_id, snap_tag, &vid, true,
&local_err);
if (ret) {
+ error_propagate(errp, local_err);
return ret;
}
fd = connect_to_sdog(s, &local_err);
if (fd < 0) {
- error_report_err(local_err);
+ error_propagate(errp, local_err);
return -1;
}
@@ -2601,16 +2603,17 @@ static int sd_snapshot_delete(BlockDriverState *bs,
buf, &wlen, &rlen);
closesocket(fd);
if (ret) {
+ error_setg_errno(errp, -ret, "failed to delete %s", s->name);
return ret;
}
switch (rsp->result) {
case SD_RES_NO_VDI:
- error_report("%s was already deleted", s->name);
+ error_setg(errp, "%s was already deleted", s->name);
case SD_RES_SUCCESS:
break;
default:
- error_report("%s, %s", sd_strerror(rsp->result), s->name);
+ error_setg(errp, "%s, %s", sd_strerror(rsp->result), s->name);
return -1;
}
--
2.7.4.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [sheepdog] [PATCH v2] block/sheepdog: add error handling to sd_snapshot_delete()
2016-03-22 4:33 [Qemu-devel] [PATCH v2] block/sheepdog: add error handling to sd_snapshot_delete() Takashi Menjo
@ 2016-03-22 4:51 ` Hitoshi Mitake
0 siblings, 0 replies; 2+ messages in thread
From: Hitoshi Mitake @ 2016-03-22 4:51 UTC (permalink / raw)
To: Takashi Menjo; +Cc: Jeff Cody, sheepdog, QEMU Developers
[-- Attachment #1: Type: text/plain, Size: 2381 bytes --]
On Tue, Mar 22, 2016 at 1:33 PM, Takashi Menjo <menjo.takashi@lab.ntt.co.jp>
wrote:
> Errors have been ignored or not propagated in some code paths
> in sd_snapshot_delete(). This patch adds error handling.
>
> Cc: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
> Cc: Jeff Cody <jcody@redhat.com>
> Cc: Vasiliy Tolstov <v.tolstov@selfip.ru>
> Cc: sheepdog@lists.wpkg.org
>
> Signed-off-by: Takashi Menjo <menjo.takashi@lab.ntt.co.jp>
> ---
> block/sheepdog.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
Looks good to me.
Reviewed-by: Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>
Vasiliy, could you test it on your environment if you have a time?
Thanks,
Hitoshi
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index a3aeae4..39d13d2 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -2565,6 +2565,7 @@ static int sd_snapshot_delete(BlockDriverState *bs,
> SheepdogVdiRsp *rsp = (SheepdogVdiRsp *)&hdr;
>
> if (!remove_objects(s)) {
> + error_setg(errp, "failed to discard snapshot inode");
> return -1;
> }
>
> @@ -2588,12 +2589,13 @@ static int sd_snapshot_delete(BlockDriverState *bs,
> ret = find_vdi_name(s, s->name, snap_id, snap_tag, &vid, true,
> &local_err);
> if (ret) {
> + error_propagate(errp, local_err);
> return ret;
> }
>
> fd = connect_to_sdog(s, &local_err);
> if (fd < 0) {
> - error_report_err(local_err);
> + error_propagate(errp, local_err);
> return -1;
> }
>
> @@ -2601,16 +2603,17 @@ static int sd_snapshot_delete(BlockDriverState *bs,
> buf, &wlen, &rlen);
> closesocket(fd);
> if (ret) {
> + error_setg_errno(errp, -ret, "failed to delete %s", s->name);
> return ret;
> }
>
> switch (rsp->result) {
> case SD_RES_NO_VDI:
> - error_report("%s was already deleted", s->name);
> + error_setg(errp, "%s was already deleted", s->name);
> case SD_RES_SUCCESS:
> break;
> default:
> - error_report("%s, %s", sd_strerror(rsp->result), s->name);
> + error_setg(errp, "%s, %s", sd_strerror(rsp->result), s->name);
> return -1;
> }
>
> --
> 2.7.4.windows.1
>
>
>
> --
> sheepdog mailing list
> sheepdog@lists.wpkg.org
> https://lists.wpkg.org/mailman/listinfo/sheepdog
>
[-- Attachment #2: Type: text/html, Size: 4146 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-03-22 4:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-22 4:33 [Qemu-devel] [PATCH v2] block/sheepdog: add error handling to sd_snapshot_delete() Takashi Menjo
2016-03-22 4:51 ` [Qemu-devel] [sheepdog] " Hitoshi Mitake
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.