X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=server-src%2Famrmtape.pl;h=392228f30a1f22c96f29f55edf973e23e9bf0076;hb=cd0b924f27312d57bd42f6c4fae2b795139e2d0b;hp=27f6d1eafe27dad07ef716fde799361a16fd8a6e;hpb=011a59f5a54864108a16af570a6b287410597cc2;p=debian%2Famanda diff --git a/server-src/amrmtape.pl b/server-src/amrmtape.pl index 27f6d1e..392228f 100644 --- a/server-src/amrmtape.pl +++ b/server-src/amrmtape.pl @@ -175,13 +175,14 @@ if ($cfgerr_level >= $CFGERR_ERRORS) { die "Errors processing disklist"; } -my $scrub_db = sub { - my $tapelist_file = config_dir_relative(getconf($CNF_TAPELIST)); - my $tapelist = Amanda::Tapelist->new($tapelist_file, !$dry_run); - unless ($tapelist) { - die "Could not read the tapelist"; - } +my $tapelist_file = config_dir_relative(getconf($CNF_TAPELIST)); +my $tapelist = Amanda::Tapelist->new($tapelist_file, !$dry_run); +unless ($tapelist) { + die "Could not read the tapelist"; +} + +my $scrub_db = sub { my $t = $tapelist->lookup_tapelabel($label); if ($keep_label) { $t->{'datestamp'} = 0 if $t; @@ -295,7 +296,7 @@ my $erase_volume = make_cb('erase_volume' => sub { open(LOG, ">$log_file"); print LOG "INFO amrmtape amrmtape pid $$\n"; close LOG; - my $chg = Amanda::Changer->new($changer_name); + my $chg = Amanda::Changer->new($changer_name, tapelist => $tapelist); $chg->load( 'label' => $label, 'res_cb' => sub { @@ -319,6 +320,8 @@ my $erase_volume = make_cb('erase_volume' => sub { $resv->release(finished_cb => sub { my ($err) = @_; + + $chg->quit(); die $err if $err; $scrub_db->();