projects
/
debian
/
amanda
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 3.3.1
[debian/amanda]
/
perl
/
Amanda
/
Changer
/
disk.pm
diff --git
a/perl/Amanda/Changer/disk.pm
b/perl/Amanda/Changer/disk.pm
index 5b5b3b9416aa895069d2e4ae15ec9ba9b83e7a00..8172791db08fbe14824dd13cd39c613c01151f36 100644
(file)
--- a/
perl/Amanda/Changer/disk.pm
+++ b/
perl/Amanda/Changer/disk.pm
@@
-267,6
+267,8
@@
sub with_disk_locked_state {
};
step locked => sub {
};
step locked => sub {
+ my $err = shift;
+ return $cb->($err) if $err;
$self->with_locked_state($self->{'state_filename'},
sub { my @args = @_;
$self->try_unlock();
$self->with_locked_state($self->{'state_filename'},
sub { my @args = @_;
$self->try_unlock();
@@
-595,9
+597,8
@@
sub _validate() {
my $dir = $self->{'dir'};
unless (-d $dir) {
my $dir = $self->{'dir'};
unless (-d $dir) {
-
$self->{'fatal_error'} = Amanda::Changer
->make_error("fatal", undef,
+
return $self
->make_error("fatal", undef,
message => "directory '$dir' does not exist");
message => "directory '$dir' does not exist");
- return;
}
if ($self->{'removable'}) {
}
if ($self->{'removable'}) {
@@
-611,9
+612,9
@@
sub _validate() {
}
}
if ($dev == $pdev) {
}
}
if ($dev == $pdev) {
- $self->{'fatal_error'} = Amanda::Changer->make_error("fatal", undef,
+ return $self->make_error("failed", undef,
+ reason => "notfound",
message => "No removable disk mounted on '$dir'");
message => "No removable disk mounted on '$dir'");
- return;
}
}
}
}
@@
-623,24
+624,22
@@
sub _validate() {
if (!-e $slot_dir) {
if ($self->{'auto-create-slot'}) {
if (!mkdir ($slot_dir)) {
if (!-e $slot_dir) {
if ($self->{'auto-create-slot'}) {
if (!mkdir ($slot_dir)) {
-
$self->{'fatal_error'} = Amanda::Changer
->make_error("fatal", undef,
+
return $self
->make_error("fatal", undef,
message => "Can't create '$slot_dir': $!");
message => "Can't create '$slot_dir': $!");
- return;
}
} else {
}
} else {
-
$self->{'fatal_error'} = Amanda::Changer
->make_error("fatal", undef,
+
return $self
->make_error("fatal", undef,
message => "slot $i doesn't exists '$slot_dir'");
message => "slot $i doesn't exists '$slot_dir'");
- return;
}
}
}
} else {
if ($self->{'auto-create-slot'}) {
}
}
}
} else {
if ($self->{'auto-create-slot'}) {
-
$self->{'fatal_error'} = Amanda::Changer
->make_error("fatal", undef,
+
return $self
->make_error("fatal", undef,
message => "property 'auto-create-slot' set but property 'num-slot' is not set");
message => "property 'auto-create-slot' set but property 'num-slot' is not set");
- return;
}
}
}
}
+ return undef;
}
sub try_lock {
}
sub try_lock {
@@
-656,7
+655,7
@@
sub try_lock {
!$self->{'fl'}->locked()) {
return $steps->{'lock'}->();
}
!$self->{'fl'}->locked()) {
return $steps->{'lock'}->();
}
- $steps->{'done'}->();
+ $steps->{'
lock_
done'}->();
};
step lock => sub {
};
step lock => sub {
@@
-673,15
+672,14
@@
sub try_lock {
$self->{'umount_src'}->remove();
$self->{'umount_src'} = undef;
}
$self->{'umount_src'}->remove();
$self->{'umount_src'} = undef;
}
- return $steps->{'done'}->();
+ return $steps->{'
lock_
done'}->();
}
};
}
};
- step done => sub {
- $self->_validate();
- $cb->();
+ step
lock_
done => sub {
+
my $err =
$self->_validate();
+ $cb->(
$err
);
};
};
-
}
sub try_umount {
}
sub try_umount {