ZFSPoolPlugin: use udevadm settle with --exit-if-exists
And silently ignore error if that command fails.
This commit is contained in:
@ -180,13 +180,11 @@ sub alloc_image {
|
|||||||
$name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
$name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
||||||
|
|
||||||
$class->zfs_create_zvol($scfg, $name, $size);
|
$class->zfs_create_zvol($scfg, $name, $size);
|
||||||
run_command ("udevadm trigger --subsystem-match block");
|
|
||||||
run_command ("udevadm settle --timeout 5");
|
my $devname = "/dev/zvol/$scfg->{pool}/$name";
|
||||||
|
|
||||||
for (1..10) {
|
run_command("udevadm trigger --subsystem-match block");
|
||||||
last if -e "/dev/zvol/$scfg->{pool}/$name" ;
|
system("udevadm settle --timeout 10 --exit-if-exists=${devname}");
|
||||||
Time::HiRes::usleep(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $name;
|
return $name;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user