zfs: fix wait by alloc_image
Signed-off-by: Wolfgang Link <w.link@proxmox.com>
This commit is contained in:
committed by
Dietmar Maurer
parent
584d97f646
commit
9b61bc9e88
@ -265,7 +265,14 @@ sub clone_image {
|
||||
sub alloc_image {
|
||||
my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_;
|
||||
|
||||
my $volname = $class->SUPER::alloc_image($storeid, $scfg, $vmid, $fmt, $name, $size);
|
||||
die "unsupported format '$fmt'" if $fmt ne 'raw';
|
||||
|
||||
die "illegal name '$name' - sould be 'vm-$vmid-*'\n"
|
||||
if $name && $name !~ m/^vm-$vmid-/;
|
||||
|
||||
my $volname = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
||||
|
||||
$class->zfs_create_zvol($scfg, $name, $size);
|
||||
|
||||
my $guid = $class->zfs_create_lu($scfg, $volname);
|
||||
$class->zfs_add_lun_mapping_entry($scfg, $volname, $guid);
|
||||
|
||||
@ -184,6 +184,13 @@ sub alloc_image {
|
||||
$name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
||||
|
||||
$class->zfs_create_zvol($scfg, $name, $size);
|
||||
run_command ("udevadm trigger --subsystem-match block");
|
||||
run_command ("udevadm settle --timeout 5");
|
||||
|
||||
for (1..10) {
|
||||
last if -e "/dev/zvol/$scfg->{pool}/$name" ;
|
||||
Time::HiRes::usleep(100);
|
||||
}
|
||||
|
||||
return $name;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user