SI/dumper.pm
changeset 16 fd87c1e3b451
parent 15 4e3753b998a9
child 17 d4942418a9ea
--- a/SI/dumper.pm	Tue Jan 19 14:49:43 2010 +0100
+++ b/SI/dumper.pm	Tue Jan 19 23:45:54 2010 +0100
@@ -6,34 +6,17 @@
 use SI::tools;
 use File::Basename;
 
-my @cleanup;
-END { 
-    #map { eval { run("lvchange -an $_ 2>/dev/null") } } @cleanup;
-    #map { eval { run("lvremove -ff $_ 2>/dev/null") } } @cleanup;
-}
-
 sub dump($\%) {
     my ($file, $devs) = @_;
 
     foreach my $volume ( map { { name => $_, %{$devs->{volume}{$_}}}}  keys %{$devs->{volume}}) {
 	next if !defined $volume->{type} or $volume->{type} !~ /^ext/i;
 
+	system("fsck -f -C0 $volume->{name}");
+	die "ERR: fsck failed\n" if $? > 2;
+
 	verbose("dumping volume $volume->{name}");
 	my $dumpdev = $volume->{name};
-
-#	if ($volume->{origin} =~ /lvm/i) {
-#	    verbose("(lvm)");
-#	    my ($vg, $lv) = `lvdisplay -c $volume->{name}` =~ /\s*\/dev\/(.*?)\/(.*?):/;
-#	    my $snap = "snap$$";
-#	    push @cleanup, "$vg/$lv";
-#
-#	    #eval {
-#	    #	run("lvcreate -s -L 1G -n snap$$ $vg/$lv 2>/dev/null");
-#	    #};
-#	    if ($@) { warn "Can't create snapshot\n" }
-#	    else { $dumpdev = "/dev/$vg/$snap$$" };
-#	}
-
 	my $of = sprintf $file, basename($volume->{name});
 	run("dump -0 -z -f $of $dumpdev");
 	verbose("\n");