Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---

Only makes sense together with patch 3.

 PVE/Storage.pm | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index ae2ea53..3e65e06 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -103,6 +103,17 @@ my $UDEVADM = '/sbin/udevadm';
 
 our $iso_extension_re = qr/\.(?:iso|img)/i;
 
+my $run_with_umask = sub {
+    my ($umask, $func, @param) = @_;
+
+    my $old_umask = umask($umask);
+    my $res = eval { $func->(@param) };
+    my $err = $@;
+    umask $old_umask;
+    die $err if $err;
+    return $res;
+};
+
 #  PVE::Storage utility functions
 
 sub config {
@@ -734,11 +745,9 @@ sub vdisk_alloc {
 
     # lock shared storage
     return $plugin->cluster_lock_storage($storeid, $scfg->{shared}, undef, sub 
{
-       my $old_umask = umask(umask|0037);
-       my $volname = eval { $plugin->alloc_image($storeid, $scfg, $vmid, $fmt, 
$name, $size) };
-       my $err = $@;
-       umask $old_umask;
-       die $err if $err;
+       my $volname = $run_with_umask->(umask|0037, sub {
+           return $plugin->alloc_image($storeid, $scfg, $vmid, $fmt, $name, 
$size);
+       });
        return "$storeid:$volname";
     });
 }
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to