fix bug #602: now zfs will wait 5 sec if error msg is "dataset is busy"

Signed-off-by: Wolfgang Link <w.link@proxmox.com>
This commit is contained in:
Wolfgang Link
2015-03-06 09:38:30 +01:00
committed by Dietmar Maurer
parent 78d7e1244f
commit 1f390a3030

View File

@ -166,7 +166,7 @@ sub zfs_request {
$msg .= "$line\n";
};
run_command($cmd, outfunc => $output, timeout => $timeout);
run_command($cmd, errmsg => "zfs error", outfunc => $output, timeout => $timeout);
return $msg;
}
@ -293,7 +293,23 @@ sub zfs_create_zvol {
sub zfs_delete_zvol {
my ($class, $scfg, $zvol) = @_;
$class->zfs_request($scfg, undef, 'destroy', '-r', "$scfg->{pool}/$zvol");
my $err;
for (my $i = 0; $i < 6; $i++) {
eval { $class->zfs_request($scfg, undef, 'destroy', '-r', "$scfg->{pool}/$zvol"); };
if ($err = $@) {
if ($err =~ m/^zfs error:(.*): dataset is busy.*/) {
sleep(1);
} else {
die $err;
}
} else {
last;
}
}
die $err if $err;
}
sub zfs_list_zvol {