This following series implements cloning for LVM and disk backends. Most of the functionality is already here, it just needed some reorganization to be accessible for every backend. I verified the following scenarios produced a bootable image: - Clone within a disk pool - Clone within a logical pool - Clone a raw file to a disk pool - Clone a disk pool to a logical pool Cole Robinson (9): storage: Refactor FS backend 'create' function choosing. storage: Always assume we are tracking alloc progress in FS backend storage: Move most of the FS creation functions to common backend. storage: cleanup: do away with 'createFile' storage: Break out actual raw cloning to separate function. storage: Implement 'CreateBlockFrom' helper. storage: Don't try sparse detection if writing to block device. storage: Implement CreateVolFrom for logical and disk backend. storage: Fix deadlock when cloning across pools. src/storage_backend.c | 471 +++++++++++++++++++++++++++++++++++++++++ src/storage_backend.h | 15 ++ src/storage_backend_disk.c | 15 ++ src/storage_backend_fs.c | 378 ++------------------------------- src/storage_backend_logical.c | 17 ++ src/storage_driver.c | 6 +- 6 files changed, 540 insertions(+), 362 deletions(-) -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list