[pve-devel] [PATCH v2 cluster 2/2] cluster: use lock for legacy authkey generation

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Mar 7 07:59:01 CET 2019


On 3/6/19 11:30 AM, Fabian Grünbichler wrote:
> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
> Notes:
>     unchanged since v1
> 
>  data/PVE/Cluster.pm | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/data/PVE/Cluster.pm b/data/PVE/Cluster.pm
> index 83b401c..b31dfa5 100644
> --- a/data/PVE/Cluster.pm
> +++ b/data/PVE/Cluster.pm
> @@ -158,11 +158,15 @@ sub gen_auth_key {
>  
>      check_cfs_is_mounted();
>  
> -    mkdir $authdir || $! == EEXIST || die "unable to create dir '$authdir' - $!\n";
> +    my $res = cfs_lock_authkey(undef, sub {
> +	mkdir $authdir || $! == EEXIST || die "unable to create dir '$authdir' - $!\n";
>  
> -    run_silent_cmd(['openssl', 'genrsa', '-out', $authprivkeyfn, '2048']);
> +	run_silent_cmd(['openssl', 'genrsa', '-out', $authprivkeyfn, '2048']);
>  
> -    run_silent_cmd(['openssl', 'rsa', '-in', $authprivkeyfn, '-pubout', '-out', $authpubkeyfn]);
> +	run_silent_cmd(['openssl', 'rsa', '-in', $authprivkeyfn, '-pubout', '-out', $authpubkeyfn]);
> +    });
> +
> +    die "$@\n" if !defined($res);

this is  a bit strange to me, there's no explicit return in the $code, so the
last statement's result will be used? 
If you use "$@" already, and thus assume that it's set here, can't you just do
an "normal":
> die "$@\n" if $@;
thingy here?

>  }
>  
>  sub gen_pveca_key {
> 






More information about the pve-devel mailing list