This series adds two preallocation mode to qcow2 and raw: Option preallocation=full preallocates disk space for image by writing zeros to disk, this ensures disk space in any cases.
Option preallocation=falloc preallocates disk space by calling posix_fallocate(). This is faster than preallocation=full. This series depends on patches 1-3 of Max's series 'qemu-img: Implement commit like QMP'. Specifically, patch 6 'qcow2: Add falloc and full preallocation option' uses minimal_blob_size() introduced by Max's patch 'qcow2: Optimize bdrv_make_empty()'. The series is also at https://github.com/taohu/qemu/commits/preallocation-v12 for you to check out, including depended patches from Max. Eric, I'm afraid now we missed qemu 2.1, so patch 1 is still sent with this series. changes to v11: - fix test case 049 (patch 4) - unsigned nl2e -> uint64_t nl2e (patch 6) - use >> instead of / (patch 6) Hu Tao (6): block: round up file size to nearest sector raw, qcow2: don't convert file size to sector size rename parse_enum_option to qapi_enum_parse and make it public qapi: introduce PreallocMode and a new PreallocMode full. raw-posix: Add falloc and full preallocation option qcow2: Add falloc and full preallocation option block/qcow2.c | 56 +++++++++++++++++++++------- block/raw-posix.c | 92 +++++++++++++++++++++++++++++++++++----------- block/raw-win32.c | 6 +-- blockdev.c | 30 +++------------ include/qapi/util.h | 17 +++++++++ qapi/Makefile.objs | 1 + qapi/block-core.json | 17 +++++++++ qapi/qapi-util.c | 32 ++++++++++++++++ tests/qemu-iotests/049.out | 2 +- tests/qemu-iotests/082.out | 54 +++++++++++++-------------- tests/qemu-iotests/096 | 64 ++++++++++++++++++++++++++++++++ tests/qemu-iotests/096.out | 14 +++++++ tests/qemu-iotests/group | 1 + 13 files changed, 296 insertions(+), 90 deletions(-) create mode 100644 include/qapi/util.h create mode 100644 qapi/qapi-util.c create mode 100755 tests/qemu-iotests/096 create mode 100644 tests/qemu-iotests/096.out -- 1.9.3