On Wed, Oct 27, 2010 at 4:52 PM, Kevin Wolf <kw...@redhat.com> wrote: > Am 22.10.2010 16:56, schrieb Stefan Hajnoczi: >> This patch adds support for the qemu-img check command. It also >> introduces a dirty bit in the qed header to mark modified images as >> needing a check. This bit is cleared when the image file is closed >> cleanly. >> >> If an image file is opened and it has the dirty bit set, a consistency >> check will run and try to fix corrupted table offsets. These >> corruptions may occur if there is power loss while an allocating write >> is performed. Once the image is fixed it opens as normal again. >> >> Signed-off-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > > Hm, do I understand right that you fix the image and reset the dirty > flag in the header during bdrv_open? So how does this work with > migration, when the destination host opens the QED file before the > source closes it? Doesn't the destination destroy the image by "fixing" it? > > And even if that wasn't the case, clearing the flag means that the > source might do new writes and thinks that the flag is still set. If the > source crashes now, we may need a consistency check, but the dirty flag > isn't set any more. > > Am I missing some detail?
You're right, migration is not supported. This is also true for the other image formats which cache metadata in memory though. I am actually looking into migration next together with Adam Litke who has already started. We'll have to defer accessing the file until the source has flushed/closed it. Stefan