If a variable is defined and assigned in a conditional statement, it
is not defined behavior in Perl.
For more information about this behaviour see
https://perldoc.perl.org/perlsyn.html#Statement-Modifiers
> NOTE: The behaviour of a my, state, or our modified with a
> statement modifier conditional or loop construct (for example,
> `my $x if ...`) is undefined.
> The value of the my variable may be undef, any previously assigned
> value, or possibly anything else.
> Don't rely on it. Future versions of perl might do something
> different from the version of perl you try it out on. Here be
> dragons."
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid);
- my $ratelimit_bps = int(1000000*$rate) if $rate;
+ my $ratelimit_bps = $rate ? int(1000000 * $rate) : undef;
+
PVE::Storage::storage_migrate($storecfg, $volid, $ssh_info, $storeid, $volname,
$base_snapshot, $sync_snapname, $ratelimit_bps, $insecure, 1, $logfunc);
}