]> git.proxmox.com Git - pve-cluster.git/commitdiff
check if mkdir return EEXIST
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 20 Aug 2013 07:34:55 +0000 (09:34 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 2 Sep 2013 08:00:52 +0000 (10:00 +0200)
Seems -d $dir is not really reliable on cluster file system (cache?).

Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
data/PVE/Cluster.pm

index 605427757fc80a00ce024f408c0ec2aedb7c31e1..82301ac0c0d3504d50f7e523ee969cd6713924e1 100644 (file)
@@ -1,7 +1,7 @@
 package PVE::Cluster;
 
 use strict;
-use POSIX;
+use POSIX qw(EEXIST);
 use File::stat qw();
 use Socket;
 use Storable qw(dclone);
@@ -130,7 +130,7 @@ sub gen_local_dirs {
               
     foreach my $dir (@required_dirs) {
        if (! -d $dir) {
-           mkdir($dir) || die "unable to create directory '$dir' - $!\n";
+           mkdir($dir) || $! == EEXIST || die "unable to create directory '$dir' - $!\n";
        }
     }
 }
@@ -141,7 +141,7 @@ sub gen_auth_key {
 
     check_cfs_is_mounted();
 
-    -d $authdir || mkdir $authdir || die "unable to create dir '$authdir' - $!\n";
+    mkdir $authdir || $! == EEXIST || die "unable to create dir '$authdir' - $!\n";
 
     my $cmd = "openssl genrsa -out '$authprivkeyfn' 2048";
     run_silent_cmd($cmd);