Re: [pve-devel] [PATCH] bug-fix: ZFSPoolPlugin

2015-02-12 Thread Dietmar Maurer

On 02/12/2015 11:26 AM, Wolfgang Link wrote:

improve Error handling.
inform user only if there is really no device.
if both checks are fail.

Signed-off-by: Wolfgang Link w.l...@proxmox.com
---
  PVE/Storage/ZFSPoolPlugin.pm |   20 
  1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index 7dc7d3e..231d109 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -180,14 +180,26 @@ 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);
-
+
+eval {
+   run_command (udevadm trigger --subsystem-match block);
+   run_command (udevadm settle --timeout 5);
+};
+
+my $warn = @$;

what is that? I guess you want:

 warn $@ if $@;

instead?


+
+my $create_ok;
+
  for (1..10) {
-   last if -e /dev/zvol/$scfg-{pool}/$name ;
+   if (-e /dev/zvol/$scfg-{pool}/$name) {
+   $create_ok = 1;
+   last;
+   }
 Time::HiRes::usleep(100);
  }
  
+die can't alloc image\n unless  $create_ok;

+


We just want to wait until udev create the device /dev/zvol, but we do 
not want to

raise additional error (zfs alloctated the image successfully).
So above change makes no sense to me.


  return $name;
  }
  



___
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


[pve-devel] [PATCH] bug-fix: ZFSPoolPlugin

2015-02-12 Thread Wolfgang Link
improve Error handling.
inform user only if there is really no device.
if both checks are fail.

Signed-off-by: Wolfgang Link w.l...@proxmox.com
---
 PVE/Storage/ZFSPoolPlugin.pm |   20 
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index 7dc7d3e..231d109 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -180,14 +180,26 @@ 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);
-
+
+eval {
+   run_command (udevadm trigger --subsystem-match block);
+   run_command (udevadm settle --timeout 5);
+};
+
+my $warn = @$;
+
+my $create_ok;
+
 for (1..10) {
-   last if -e /dev/zvol/$scfg-{pool}/$name ;
+   if (-e /dev/zvol/$scfg-{pool}/$name) {
+   $create_ok = 1;
+   last;
+   }
Time::HiRes::usleep(100);
 }
 
+die can't alloc image\n unless  $create_ok;
+
 return $name;
 }
 
-- 
1.7.10.4


___
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel