From: Luiz Capitulino <lcapitulino@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/9] block: bdrv_reopen_prepare(): use error_setg_file_open()
Date: Mon, 10 Jun 2013 09:21:22 -0400 [thread overview]
Message-ID: <20130610092122.2d683638@redhat.com> (raw)
In-Reply-To: <20130610084347.GC5308@stefanha-thinkpad.redhat.com>
On Mon, 10 Jun 2013 10:43:47 +0200
Stefan Hajnoczi <stefanha@gmail.com> wrote:
> On Fri, Jun 07, 2013 at 03:52:29PM -0400, Luiz Capitulino wrote:
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> > block.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/block.c b/block.c
> > index 79ad33d..c78f152 100644
> > --- a/block.c
> > +++ b/block.c
> > @@ -1291,8 +1291,7 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_state, BlockReopenQueue *queue,
> > if (local_err != NULL) {
> > error_propagate(errp, local_err);
> > } else {
> > - error_set(errp, QERR_OPEN_FILE_FAILED,
> > - reopen_state->bs->filename);
> > + error_setg_file_open(errp, errno, reopen_state->bs->filename);
>
> Looking closer, my suggestion was wrong too.
>
> I think QERR_OPEN_FILE_FAILED is simply the wrong error here. We don't
> know that the error occurred when trying to open a file.
Right.
> errno does not necessarily contain the error value!
There are two ways to fix it (and they're not mutually exclusive):
1. We could review all bdrv_reopen_prepare() methods and make sure they
set errno on failure
2. We set errno=0 before calling the bdrv_reopen_prepare() method and if
there's an error and if errno != 0 we use it, otherwise we set a generic
"failed to prepare to reopen image" error
Option 1 goes a bit beyond the time I'd like to spent on this series.
Option 2 is quite reasonable.
What do you think?
next prev parent reply other threads:[~2013-06-10 13:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-07 19:52 [Qemu-devel] [PATCH 0/9] QMP/HMP: add error reason to open failures Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 1/9] error: add error_setg_file_open() helper Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 2/9] rng-random: use error_setg_file_open() Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 3/9] block: bdrv_reopen_prepare(): " Luiz Capitulino
2013-06-10 8:39 ` Stefan Hajnoczi
2013-06-10 8:43 ` Stefan Hajnoczi
2013-06-10 13:21 ` Luiz Capitulino [this message]
2013-06-10 13:54 ` Kevin Wolf
2013-06-10 14:02 ` Luiz Capitulino
2013-06-10 14:06 ` Kevin Wolf
2013-06-07 19:52 ` [Qemu-devel] [PATCH 4/9] block: mirror_complete(): " Luiz Capitulino
2013-06-10 8:44 ` Stefan Hajnoczi
2013-06-07 19:52 ` [Qemu-devel] [PATCH 5/9] blockdev: " Luiz Capitulino
2013-06-10 8:45 ` Stefan Hajnoczi
2013-06-10 13:25 ` Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 6/9] cpus: " Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 7/9] dump: qmp_dump_guest_memory(): " Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 8/9] savevm: qmp_xen_save_devices_state(): " Luiz Capitulino
2013-06-07 19:52 ` [Qemu-devel] [PATCH 9/9] qerror: drop QERR_OPEN_FILE_FAILED macro Luiz Capitulino
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=20130610092122.2d683638@redhat.com \
--to=lcapitulino@redhat.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
/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 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.