From: Dietmar Maurer Date: Thu, 12 Feb 2015 10:40:55 +0000 (+0100) Subject: ZFSPoolPlugin: use udevadm settle with --exit-if-exists X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=76fd7dc7c237c36b1a703c85b1a28efd44584a12;p=pve-storage.git ZFSPoolPlugin: use udevadm settle with --exit-if-exists And silently ignore error if that command fails. --- diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm index 7dc7d3e..69b05aa 100644 --- a/PVE/Storage/ZFSPoolPlugin.pm +++ b/PVE/Storage/ZFSPoolPlugin.pm @@ -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; }