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; $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;
} }