]> git.proxmox.com Git - pve-storage.git/commitdiff
ZFSPoolPlugin: use udevadm settle with --exit-if-exists
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 12 Feb 2015 10:40:55 +0000 (11:40 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 12 Feb 2015 10:47:45 +0000 (11:47 +0100)
And silently ignore error if that command fails.

PVE/Storage/ZFSPoolPlugin.pm

index 7dc7d3ef6a8e01a7af354c81e829bd65d615b188..69b05aa6323f4ae6b298d3394829ae66fa1793fe 100644 (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;
 }