File preallocate-if-lvm.patch of Package virt-v2v

If destination storage target is an LVM pool, the root partition
will not be found if using the default (sparse) allocation scheme.
Buffer I/O errors can also be seen in dmesg.

This problem is due to the spare allocation scheme not being supported
for LVM storage pools. The only pool types which support sparse files
are dir, fs and netfs. This patch forces the preallocated scheme when
other storage pool targets are specified.

Index: virt-v2v-0.9.1/lib/Sys/VirtConvert/Connection/LibVirtTarget.pm
===================================================================
--- virt-v2v-0.9.1.orig/lib/Sys/VirtConvert/Connection/LibVirtTarget.pm
+++ virt-v2v-0.9.1/lib/Sys/VirtConvert/Connection/LibVirtTarget.pm
@@ -178,6 +178,13 @@ sub create_volume
         if ($Sys::VirtConvert::Connection::LibVirt::format_pools{$pooltype}) {
             $vol_xml = $vol_xml_format;
         } else {
+            # Sparse allocations are not supported on raw-only pool types
+            if ($sparse eq '1') {
+                logmsg WARN, __x('Target pool type {pooltype} doesn\'t '.
+                             'support sparse allocations',
+                             pooltype => $pooltype);
+                $vol_xml_noformat =~ s/tion>0<\/alloca/tion>$size<\/alloca/;
+            }
             $vol_xml = $vol_xml_noformat;
 
             # If the target format type isn't raw, warn the user that they're