From: Kevin Wolf <kwolf@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: qemu-stable@nongnu.org, Peter Lieven <pl@kamp.de>,
Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 10/12] qcow2: Flushing the caches in qcow2_close may fail
Date: Tue, 25 Nov 2014 15:49:41 +0100 [thread overview]
Message-ID: <20141125144941.GF4641@noname.redhat.com> (raw)
In-Reply-To: <547490B2.8070105@redhat.com>
Am 25.11.2014 um 15:22 hat Max Reitz geschrieben:
> On 2014-11-25 at 15:08, Max Reitz wrote:
> >qcow2_cache_flush() may fail; if one of the caches failed to be flushed
> >successfully to disk in qcow2_close() the image should not be marked
> >clean, and we should emit a warning.
> >
> >Cc: qemu-stable@nongnu.org
> >Signed-off-by: Max Reitz <mreitz@redhat.com>
> >---
> > block/qcow2.c | 19 ++++++++++++++++---
> > 1 file changed, 16 insertions(+), 3 deletions(-)
> >
> >diff --git a/block/qcow2.c b/block/qcow2.c
> >index d120494..2bd2a53 100644
> >--- a/block/qcow2.c
> >+++ b/block/qcow2.c
> >@@ -1428,10 +1428,23 @@ static void qcow2_close(BlockDriverState *bs)
> > s->l1_table = NULL;
> > if (!(bs->open_flags & BDRV_O_INCOMING)) {
> >- qcow2_cache_flush(bs, s->l2_table_cache);
> >- qcow2_cache_flush(bs, s->refcount_block_cache);
> >+ int ret1, ret2;
> >- qcow2_mark_clean(bs);
> >+ ret1 = qcow2_cache_flush(bs, s->l2_table_cache);
> >+ ret2 = qcow2_cache_flush(bs, s->refcount_block_cache);
> >+
> >+ if (ret1) {
> >+ error_report("Failed to flush the L2 table cache: %s",
> >+ strerror(-ret1));
> >+ }
> >+ if (ret2) {
> >+ error_report("Failed to flush the refcount block cache: %s",
> >+ strerror(-ret2));
> >+ }
> >+
> >+ if (!ret1 && !ret2) {
> >+ qcow2_mark_clean(bs);
> >+ }
> > }
> > qcow2_cache_destroy(bs, s->l2_table_cache);
>
> I just noticed this breaks 026, 071 and 089, due to lots of
> additional "Failed to flush the .* cache" lines. I can either go the
> easy way and remove the error_report() calls from this cache; or I
> can amend the test outputs. I'm not sure what I prefer, because I'm
> not sure whether having the output is actually useful. Any thoughts
> from you?
I think I have a slight preference for keeping the error messages and
updating the reference output.
Kevin
next prev parent reply other threads:[~2014-11-25 14:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-25 14:07 [Qemu-devel] [PATCH 00/12] block: Various Coverity-spotted fixes Max Reitz
2014-11-25 14:07 ` [Qemu-devel] [PATCH 01/12] block: qcow2 driver may not be found Max Reitz
2014-11-26 7:23 ` Markus Armbruster
2014-11-26 9:13 ` Max Reitz
2014-11-26 15:19 ` Eric Blake
2014-11-26 15:20 ` Max Reitz
2014-11-26 15:24 ` Kevin Wolf
2014-11-27 9:02 ` Markus Armbruster
2014-11-25 14:07 ` [Qemu-devel] [PATCH 02/12] block/vvfat: qcow " Max Reitz
2014-11-25 14:07 ` [Qemu-devel] [PATCH 03/12] block/nfs: Add create_opts Max Reitz
2014-11-25 14:41 ` Kevin Wolf
2014-11-25 14:49 ` Max Reitz
2014-11-27 13:24 ` Max Reitz
2014-11-25 14:07 ` [Qemu-devel] [PATCH 04/12] block: Check create_opts before image creation Max Reitz
2014-11-25 14:07 ` [Qemu-devel] [PATCH 05/12] qemu-img: " Max Reitz
2014-11-25 14:07 ` [Qemu-devel] [PATCH 06/12] qemu-img: Check create_opts before image amendment Max Reitz
2014-11-25 14:08 ` [Qemu-devel] [PATCH 07/12] iotests: Only kill NBD server if it runs Max Reitz
2014-11-25 14:08 ` [Qemu-devel] [PATCH 08/12] iotests: Add test for unsupported image creation Max Reitz
2014-11-25 14:08 ` [Qemu-devel] [PATCH 09/12] qcow2: Prevent numerical overflow Max Reitz
2014-11-25 14:08 ` [Qemu-devel] [PATCH 10/12] qcow2: Flushing the caches in qcow2_close may fail Max Reitz
2014-11-25 14:22 ` Max Reitz
2014-11-25 14:49 ` Kevin Wolf [this message]
2014-11-25 14:08 ` [Qemu-devel] [PATCH 11/12] qcow2: Respect bdrv_truncate() error Max Reitz
2014-11-25 14:08 ` [Qemu-devel] [PATCH 12/12] block/raw-posix: Fix ret in raw_open_common() Max Reitz
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=20141125144941.GF4641@noname.redhat.com \
--to=kwolf@redhat.com \
--cc=armbru@redhat.com \
--cc=mreitz@redhat.com \
--cc=pl@kamp.de \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=stefanha@redhat.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.