ZFSPoolPlugin: use udevadm settle with --exit-if-exists

And silently ignore error if that command fails.
This commit is contained in:
Dietmar Maurer
2015-02-12 11:40:55 +01:00
parent f824c72250
commit 76fd7dc7c2

View File

@ -180,13 +180,11 @@ 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);
}
my $devname = "/dev/zvol/$scfg->{pool}/$name";
run_command("udevadm trigger --subsystem-match block");
system("udevadm settle --timeout 10 --exit-if-exists=${devname}");
return $name;
}