• M
    qcow2: Flush image after creation · ba2ab2f2
    Max Reitz 提交于
    Opening the qcow2 image with BDRV_O_NO_FLUSH prevents any flushes during
    the image creation. This means that the image has not yet been flushed
    to disk when qemu-img create exits. This flush is delayed until the next
    operation on the image involving opening it without BDRV_O_NO_FLUSH and
    closing (or directly flushing) it. For large images and/or images with a
    small cluster size and preallocated metadata, this flush may take a
    significant amount of time and may occur unexpectedly.
    
    Reopening the image without BDRV_O_NO_FLUSH right before the end of
    qcow2_create2() results in hoisting the potentially costly flush into
    the image creation, which is expected to take some time (whereas
    successive image operations may be not).
    Signed-off-by: NMax Reitz <mreitz@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Reviewed-by: NBenoit Canet <benoit@irqsave.net>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    ba2ab2f2
qcow2.c 70.1 KB