> - run_command($cmd, outfunc => $output, timeout => $timeout); > + run_command($cmd, errmsg => "ERROR", outfunc => $output, timeout => > $timeout);
Note: you use "ERROR" here - without collon. > > return $msg; > } > @@ -291,7 +291,26 @@ sub zfs_create_zvol { > sub zfs_delete_zvol { > my ($class, $scfg, $zvol) = @_; > > - $class->zfs_request($scfg, undef, 'destroy', '-r', > "$scfg->{pool}/$zvol"); > + my $ret; > + eval {$ret = $class->zfs_request($scfg, undef, 'destroy', '-r', > "$scfg->{pool}/$zvol");}; > + $ret = $@ if $@; > + > + if ($ret =~ m/^ERROR:(.*)/) { So this regex will never match! > + > + if ($ret =~ m/.*: dataset is busy.*/){ > + > + for(my $i = 0; $ret && $i < 5; $i++){ > + sleep(1); > + > + eval {$ret = $class->zfs_request($scfg, undef, 'destroy', '-r', > "$scfg->{pool}/$zvol");}; Also, this is a code duplication, and can be avoided easily. > + $ret = $@ if $@; > + } > + > + die $ret if $ret; > + } else { > + die "$ret"; > + } > + } > } > > sub zfs_list_zvol { > -- > 1.7.10.4 > > > _______________________________________________ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel