rbd: get kernel device sub returns a path, not a name

also transform to private sub instead of local variable closure.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht
2021-04-09 13:45:17 +02:00
parent 72bbd8a6f7
commit 22265bd990

View File

@ -603,7 +603,7 @@ sub deactivate_storage {
return 1;
}
my $get_kernel_device_name = sub {
my sub get_kernel_device_path {
my ($scfg, $name) = @_;
return "/dev/rbd/" . get_rbd_path($scfg, $name);
};
@ -616,7 +616,7 @@ sub map_volume {
my $name = $img_name;
$name .= '@'.$snapname if $snapname;
my $kerneldev = $get_kernel_device_name->($scfg, $name);
my $kerneldev = get_kernel_device_path($scfg, $name);
return $kerneldev if -b $kerneldev; # already mapped
@ -635,7 +635,7 @@ sub unmap_volume {
my ($vtype, $name, $vmid) = $class->parse_volname($volname);
$name .= '@'.$snapname if $snapname;
my $kerneldev = $get_kernel_device_name->($scfg, $name);
my $kerneldev = get_kernel_device_path($scfg, $name);
if (-b $kerneldev) {
my $cmd = $rbd_cmd->($scfg, $storeid, 'unmap', $kerneldev);