Hi Paolo,
On 04/11/2012 03:40 AM, Paolo Bonzini wrote:

>> From: Liu Yuan <tailai...@taobao.com>
>> > 
>> > The 'qemu-img convert -h' advertise that the default cache mode is
>> > 'writeback', while in fact it is 'unsafe'.
>> > 
>> > This patch 1) changes the cache mode as 'writeback' and 2) explicitly
>> > calls bdrv_flush() to flush the dirty bits.
>> > 
>> > 2) is needed because some backend storage doesn't have a self-flush
>> > mechanism(for e.g., sheepdog), so we need to call bdrv_flush() to make
>> > sure the image is really writen to the storage instead of hanging around
>> > writeback cache forever.
> Shouldn't the close method do that then?


I'd insist using bdrv_flush() instead of bdrv_close() because
 1) if we use bdrv_close(), we rely on the assumption that backend
storage will do flushing while interpreting this operation. This
assumption might not always hold, for e.g, current sheepdog doesn't do
flushing for bdrv_close(). So bdrv_flush() will be the safest method to
push the data back.
 2) explicit flushing is more maintainable, we don't need to guess if it
does flushing internally if we use other function that flush implicitly.

Thanks,
Yuan

Reply via email to