my $createfn = sub {
- # second test (after locking test is accurate)
+ # test after locking
die "unable to create vm $vmid: config file already exists\n"
if -f $filename;
return $rpcenv->fork_worker('qmcreate', $vmid, $authuser, $realcmd);
};
- return PVE::QemuServer::lock_config($vmid, $archive ? $restorefn : $createfn);
+ return PVE::QemuServer::lock_config_full($vmid, 1, $archive ? $restorefn : $createfn);
}});
__PACKAGE__->register_method({
}
}
-sub lock_config {
- my ($vmid, $code, @param) = @_;
+sub lock_config_full {
+ my ($vmid, $timeout, $code, @param) = @_;
my $filename = config_file_lock($vmid);
- my $res = lock_file($filename, 10, $code, @param);
+ my $res = lock_file($filename, $timeout, $code, @param);
die $@ if $@;
return $res;
}
+sub lock_config {
+ my ($vmid, $code, @param) = @_;
+
+ return lock_config_full($vmid, 10, $code, @param);
+}
+
sub cfs_config_path {
my ($vmid, $node) = @_;