All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Max Reitz <mreitz@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Jeff Cody <jcody@redhat.com>,
	qemu-devel@nongnu.org, qemu-stable <qemu-stable@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v2 0/3] qcow2: Do not mark inactive images corrupt
Date: Wed, 6 Jun 2018 16:16:20 -0400	[thread overview]
Message-ID: <cad2860f-78a6-3a03-0630-a0b30265c460@redhat.com> (raw)
In-Reply-To: <20180606193702.7113-1-mreitz@redhat.com>



On 06/06/2018 03:36 PM, Max Reitz wrote:
> The non-public logs in
> https://bugzilla.redhat.com/show_bug.cgi?id=1583346 (sorry...) reveal
> this problem:
> 
> $ (Create a qcow2 file "foo.qcow2" with a corrupted first L1 entry)
> $ echo 'qemu-io none0 "read 0 512"' \
>     | x86_64-softmmu/qemu-system-x86_64 -drive if=none,file=foo.qcow2 \
>                                         -monitor stdio \
>                                         -incoming exec:'cat /dev/null'
> QEMU 2.12.50 monitor - type 'help' for more information
> (qemu) qemu-io none0 "read 0 512"
> qcow2: Marking image as corrupt: L2 table offset 0x44200 unaligned (L1 index: 0); further corruption events will be suppressed
> qemu-system-x86_64: block/io.c:1691: bdrv_co_pwritev: Assertion `!(bs->open_flags & BDRV_O_INACTIVE)' failed.
> [1]    18444 done                 echo 'qemu-io none0 "read 0 512"' |
>        18445 abort (core dumped)  x86_64-softmmu/qemu-system-x86_64 -drive if=none,file=foo.qcow2 -monitor stdi
> 
> Oops.
> 
> 
> The first patch in this series makes a function public that the second
> patch uses to fix the issue by treating all non-writable images like
> read-only images (yes, there is a difference...) in this regard (which
> most importantly means not trying to set the corrupt flag on them).
> Inactive images count as non-writable images, but not as read-only
> images, so that fixes it.
> 
> The third patch adds an iotest case.
> 
> 
> v2:
> - Use bdrv_is_writable() instead of copying its functionality [Jeff]
> 
> 
> git-backport-diff against v1:
> 
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
> 
> 001/3:[down] 'block: Make bdrv_is_writable() public'
> 002/3:[0004] [FC] 'qcow2: Do not mark inactive images corrupt'
> 003/3:[----] [--] 'iotests: Add case for a corrupted inactive image'
> 
> 
> Max Reitz (3):
>   block: Make bdrv_is_writable() public
>   qcow2: Do not mark inactive images corrupt
>   iotests: Add case for a corrupted inactive image
> 
>  include/block/block.h      |  1 +
>  block.c                    | 17 ++++++++++++++---
>  block/qcow2.c              |  2 +-
>  tests/qemu-iotests/060     | 30 ++++++++++++++++++++++++++++++
>  tests/qemu-iotests/060.out | 14 ++++++++++++++
>  5 files changed, 60 insertions(+), 4 deletions(-)
> 

Reviewed-by: John Snow <jsnow@redhat.com>

  parent reply	other threads:[~2018-06-06 20:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-06 19:36 [Qemu-devel] [PATCH v2 0/3] qcow2: Do not mark inactive images corrupt Max Reitz
2018-06-06 19:37 ` [Qemu-devel] [PATCH v2 1/3] block: Make bdrv_is_writable() public Max Reitz
2018-06-07  3:14   ` Jeff Cody
2018-06-06 19:37 ` [Qemu-devel] [PATCH v2 2/3] qcow2: Do not mark inactive images corrupt Max Reitz
2018-06-07  3:14   ` Jeff Cody
2018-06-06 19:37 ` [Qemu-devel] [PATCH v2 3/3] iotests: Add case for a corrupted inactive image Max Reitz
2018-06-06 19:38 ` [Qemu-devel] [PATCH v2 0/3] qcow2: Do not mark inactive images corrupt Max Reitz
2018-06-06 20:16 ` John Snow [this message]
2018-06-09 21:54 ` 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=cad2860f-78a6-3a03-0630-a0b30265c460@redhat.com \
    --to=jsnow@redhat.com \
    --cc=jcody@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    /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.