From: Anthony Liguori <anthony@codemonkey.ws>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: Avi Kivity <avi@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Disk image shared and exclusive locks.
Date: Mon, 07 Dec 2009 08:22:24 -0600 [thread overview]
Message-ID: <4B1D0FA0.8060500@codemonkey.ws> (raw)
In-Reply-To: <20091207140857.GQ23109@amd.home.annexia.org>
Richard W.M. Jones wrote:
> On Mon, Dec 07, 2009 at 07:39:11AM -0600, Anthony Liguori wrote:
>
>> Richard W.M. Jones wrote:
>>
>>> Also if we only acquire the lock during the commit operation then
>>> we'll end up with disk corruption.
>>>
>> Why do we end up with disk corruption?
>>
>
> Forget about locking for a minute, I don't think this is safe
> currently. If you have two VMs set up like:
>
> qemu-img create -b backing.img foo.img
> qemu-img create -b backing.img bar.img
>
> qemu -drive file=foo.img # VM1
> qemu -drive file=bar.img # VM2
>
> If VM1 does a commit to the backing image, then VM2 may be caching (in
> its kernel memory) bits of the old backing image, and will
> subsequently fetch bits of the new backing image, so it'll see a
> mixture of old and new data. How is VM2 supposed to cope with this?
> It sounds like massive disk corruption to me ...
>
Yes, this will cause corruption. Implementing locking in the fashion
I've previously described will prevent 'commit' from being run (since
you can't upgrade the lock since someone else is holding a read-lock).
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-12-07 14:22 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-04 16:53 [Qemu-devel] [PATCH] Disk image shared and exclusive locks Richard W.M. Jones
2009-12-04 17:15 ` Anthony Liguori
2009-12-04 21:57 ` Richard W.M. Jones
2009-12-04 22:29 ` Anthony Liguori
2009-12-05 17:31 ` Avi Kivity
2009-12-05 17:47 ` Anthony Liguori
2009-12-05 17:55 ` Avi Kivity
2009-12-05 17:59 ` Anthony Liguori
2009-12-07 10:31 ` Jamie Lokier
2009-12-07 10:42 ` Kevin Wolf
2009-12-07 10:48 ` Avi Kivity
2009-12-07 10:56 ` Kevin Wolf
2009-12-07 11:28 ` Jamie Lokier
2009-12-07 11:51 ` Kevin Wolf
2009-12-07 12:06 ` Daniel P. Berrange
2009-12-07 10:45 ` Daniel P. Berrange
2009-12-07 11:19 ` Jamie Lokier
2009-12-07 11:30 ` Daniel P. Berrange
2009-12-07 11:31 ` Richard W.M. Jones
2009-12-07 11:38 ` Jamie Lokier
2009-12-07 11:49 ` Daniel P. Berrange
2009-12-07 11:59 ` Richard W.M. Jones
2009-12-07 14:35 ` [Qemu-devel] " Paolo Bonzini
2009-12-07 13:43 ` [Qemu-devel] " Anthony Liguori
2009-12-07 14:01 ` Daniel P. Berrange
2009-12-07 14:15 ` Anthony Liguori
2009-12-07 14:28 ` Daniel P. Berrange
2009-12-07 14:53 ` Anthony Liguori
2009-12-08 9:40 ` Kevin Wolf
2009-12-07 11:04 ` Richard W.M. Jones
2009-12-07 10:58 ` Richard W.M. Jones
2009-12-07 11:35 ` Jamie Lokier
2009-12-07 13:39 ` Anthony Liguori
2009-12-07 14:08 ` Richard W.M. Jones
2009-12-07 14:22 ` Anthony Liguori [this message]
2009-12-07 14:31 ` Richard W.M. Jones
2009-12-07 14:55 ` Anthony Liguori
2009-12-08 9:48 ` Kevin Wolf
2009-12-08 10:16 ` Richard W.M. Jones
2009-12-07 14:38 ` [Qemu-devel] " Paolo Bonzini
2009-12-07 9:38 ` [Qemu-devel] " Daniel P. Berrange
2009-12-07 10:39 ` Chris Webb
2009-12-07 13:32 ` Anthony Liguori
2009-12-07 13:38 ` Chris Webb
2009-12-07 13:47 ` Anthony Liguori
2009-12-07 14:25 ` Daniel P. Berrange
2009-12-07 14:58 ` Chris Webb
2009-12-07 14:16 ` [Qemu-devel] [PATCH VERSION 2] " Richard W.M. Jones
2009-12-07 15:06 ` Anthony Liguori
2009-12-08 8:48 ` [Qemu-devel] " Paolo Bonzini
2009-12-08 10:00 ` [Qemu-devel] " Kevin Wolf
2009-12-08 10:25 ` Richard W.M. Jones
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=4B1D0FA0.8060500@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rjones@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.