From: "MENJO, Takashi" <menjo.takashi@lab.ntt.co.jp>
To: 'Jeff Cody' <jcody@redhat.com>
Cc: 'Hitoshi Mitake' <mitake.hitoshi@lab.ntt.co.jp>,
sheepdog@lists.wpkg.org, qemu-devel@nongnu.org,
'Vasiliy Tolstov' <v.tolstov@selfip.ru>
Subject: Re: [Qemu-devel] [PATCH] block/sheepdog: add error handling to sd_snapshot_delete()
Date: Tue, 22 Mar 2016 12:59:18 +0900 [thread overview]
Message-ID: <000101d183ef$3561f690$a025e3b0$@lab.ntt.co.jp> (raw)
In-Reply-To: <20160318161640.GN26318@localhost.localdomain>
Thank you for your review, Jeff!
I'll submit a patch v2 soon.
In addition, I found that we also need to set errp below.
This will be fixed in v2, too.
| 2607 switch (rsp->result) {
| 2608 case SD_RES_NO_VDI:
| 2609 error_report("%s was already deleted", s->name);
Takashi
> -----Original Message-----
> From: Jeff Cody [mailto:jcody@redhat.com]
> Sent: Saturday, March 19, 2016 1:17 AM
> To: Takashi Menjo <menjo.takashi@lab.ntt.co.jp>
> Cc: qemu-devel@nongnu.org; Hitoshi Mitake <mitake.hitoshi@lab.ntt.co.jp>;
> Vasiliy Tolstov <v.tolstov@selfip.ru>; sheepdog@lists.wpkg.org
> Subject: Re: [PATCH] block/sheepdog: add error handling to
> sd_snapshot_delete()
>
> On Fri, Mar 18, 2016 at 05:54:38PM +0900, Takashi Menjo wrote:
> > Errors have been ignored in some code paths in sd_snapshot_delete().
> > This patch adds error handling.
> >
> > Signed-off-by: Takashi Menjo <menjo.takashi@lab.ntt.co.jp>
>
> Thank you for the patch!
>
> > ---
> > block/sheepdog.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/block/sheepdog.c b/block/sheepdog.c
> > index a3aeae4..6492405 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_report("failed to discard snapshot inode");
>
> We want to set errp, so that the error is picked up correctly. It is
> assumed in QEMU that if there is an Error object passed, that it is
> sufficient to check it for error (as opposed to checking the return
> value).
>
> You can use error_setg() here to do this, e.g.:
>
> error_setg(errp, "failed to discard snapshot inode");
>
> > return -1;
> > }
> >
> > @@ -2588,6 +2589,7 @@ 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_report_err(local_err);
>
> To propagate the local_err value to errp, use error_propagate:
>
> error_propagate(errp, local_err);
>
> > return ret;
> > }
>
>
> There is another hunk that is missing an error_propagate in
> sd_snapshot_delete:
>
> 2594 fd = connect_to_sdog(s, &local_err);
> 2595 if (fd < 0) {
> 2596 error_report_err(local_err);
> 2597 return -1;
> 2598 }
> 2599
>
> >
> > @@ -2601,6 +2603,7 @@ 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;
> > }
>
> We also need to set errp in the switch statement on rsp->result:
>
> 2607 switch (rsp->result) {
>
> [...]
>
> 2612 default:
> 2613 error_report("%s, %s", sd_strerror(rsp->result), s->name);
> 2614 return -1;
> 2615 }
>
>
>
prev parent reply other threads:[~2016-03-22 4:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-18 8:54 [Qemu-devel] [PATCH] block/sheepdog: add error handling to sd_snapshot_delete() Takashi Menjo
2016-03-18 16:17 ` Jeff Cody
2016-03-22 3:59 ` MENJO, Takashi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000101d183ef$3561f690$a025e3b0$@lab.ntt.co.jp' \
--to=menjo.takashi@lab.ntt.co.jp \
--cc=jcody@redhat.com \
--cc=mitake.hitoshi@lab.ntt.co.jp \
--cc=qemu-devel@nongnu.org \
--cc=sheepdog@lists.wpkg.org \
--cc=v.tolstov@selfip.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).