X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=server-src%2Famcheck-device.pl;h=3a72bbe0053a0296889163fc22edb45fc589dc91;hb=refs%2Ftags%2Fupstream%2F3.3.1;hp=a27d006148ba4e4880dd787f20bb3995c01cd55b;hpb=cd0b924f27312d57bd42f6c4fae2b795139e2d0b;p=debian%2Famanda diff --git a/server-src/amcheck-device.pl b/server-src/amcheck-device.pl index a27d006..3a72bbe 100644 --- a/server-src/amcheck-device.pl +++ b/server-src/amcheck-device.pl @@ -38,6 +38,7 @@ my $config_overrides = new_config_overrides($#ARGV+1); my $overwrite = 0; Getopt::Long::Configure(qw{bundling}); GetOptions( + 'version' => \&Amanda::Util::version_opt, 'o=s' => sub { add_config_override_opt($config_overrides, $_[1]); }, 'w' => \$overwrite, ) or usage(); @@ -167,11 +168,20 @@ sub do_check { step result_cb => sub { (my $err, $res, $label, $mode) = @_; - return failure($err, $finished_cb) if $err; + if ($err) { + if ($res) { + $res->release(finished_cb => sub { + return failure($err, $finished_cb); + }); + return; + } else { + return failure($err, $finished_cb); + } + } my $modestr = ($mode == $ACCESS_APPEND)? "append" : "write"; my $slot = $res->{'this_slot'}; - if (defined $res->{'device'}->volume_label()) { + if (defined $res->{'device'} and defined $res->{'device'}->volume_label()) { print "Will $modestr to volume '$label' in slot $slot.\n"; } else { print "Will $modestr label '$label' to new volume in slot $slot.\n";