my $fh;
- my $sparse = '';
-
- # no sparse file scan for block devices
- # no sparse file scan when we use compression
- # but we enable it for files
-
my @filea = ($conffile, 'qemu-server.conf'); # always first file in tar
foreach my $di (@{$task->{disks}}) {
- $sparse = '-s' if !$comp && $di->{type} eq 'file';
if ($di->{type} eq 'block' || $di->{type} eq 'file') {
push @filea, $di->{snappath}, $di->{filename};
} else {
my $files = join (' ', map { "'$_'" } @filea);
+ # no sparse file scan when we use compression
+ my $sparse = $comp ? '' : '-s';
+
my $cmd = "/usr/lib/qemu-server/vmtar $sparse $files";
my $bwl = $opts->{bwlimit}*1024; # bandwidth limit for cstream
$cmd .= "|cstream -t $bwl" if $opts->{bwlimit};
time_t ctime = fs.st_mtime;
struct sp_array *ma = sparray_new();
- if (sparse) {
+ if (sparse && !S_ISBLK(fs.st_mode)) {
if (!scan_sparse_file (fd, ma)) {
fprintf (stderr, "scanning '%s' failed\n", source);
exit (-1);