This patch set contains a new API for zeroing out volumes. I called
it zero out rather than overwrite because it doesn't overwrite
anything in the case of sparse files. It does guarantee that any
subsequent reads from the volume will return zeroes.
The ESX driver change is part of the patch. Without it, the struct is
missing its initializer and fails to build. I'm not sure what our
position on the style of struct initializers is; there are both forms
in the code. If this style is heresy, we should add a statement to
that effect in HACKING.
Dave
David Allan (9):
Fix ESX storage driver struct initializer
Add public API for volume zeroing
Define the internal driver API for vol zeroing
Implement the public API for vol zeroing
Define wire protocol format for vol zeroing
Implement RPC client for vol zeroing
Implement the remote dispatch bits of vol zeroing
Simplified version of volume zeroing based on feedback from the list.
Virsh support for vol zeroing
daemon/remote.c | 32 +++++
daemon/remote_dispatch_args.h | 1 +
daemon/remote_dispatch_prototypes.h | 8 ++
daemon/remote_dispatch_table.h | 5 +
include/libvirt/libvirt.h.in | 2 +
src/driver.h | 5 +
src/esx/esx_storage_driver.c | 39 +------
src/libvirt.c | 47 ++++++++
src/libvirt_public.syms | 1 +
src/remote/remote_driver.c | 27 +++++
src/remote/remote_protocol.c | 11 ++
src/remote/remote_protocol.h | 9 ++
src/remote/remote_protocol.x | 8 +-
src/storage/storage_driver.c | 218 +++++++++++++++++++++++++++++++++++
tools/virsh.c | 42 +++++++
15 files changed, 418 insertions(+), 37 deletions(-)