This series implements full image preallocation to create a non-sparse image file at creation time, both for raw and qcow2 format. The purpose is to avoid performance deterioration of the guest cause by sparse image.
v3: - Fix comments to v2 by Fam. - qcow2: first fallocate disk space, then allocate metadata. This avoids the problem in v2 that bdrv_preallocate may clear all information in metadata. This does not necessarily map all data clusters sequentially but does keep information in metadata. Peter, is this acceptable? Hu Tao (6): block: introduce prealloc_mode block: add BlockDriver.bdrv_preallocate. block/raw-posix: implement bdrv_preallocate raw-posix: Add full image preallocation option qcow2: implement bdrv_preallocate qcow2: Add full image preallocation option block.c | 13 +++++++++++ block/qcow2.c | 33 ++++++++++++++++++++++------ block/raw-posix.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++ include/block/block.h | 7 ++++++ include/block/block_int.h | 3 +++ 5 files changed, 105 insertions(+), 7 deletions(-) -- 1.7.11.7