| bool_entry "relaxed_acs_check"
| bool_entry "allow_disk_format_probing"
| str_entry "lock_manager"
+ | str_entry "metadata_lock_manager"
let rpc_entry = int_entry "max_queued"
| int_entry "keepalive_interval"
#lock_manager = "lockd"
+# To serialize two or more daemons trying to change metadata on a
+# file (e.g. a file on NFS share), libvirt offers a locking
+# mechanism. Currently, only "lockd" is supported (or no locking
+# at all if unset). Note that this is independent of lock_manager
+# described above.
+#
+#metadata_lock_manager = "lockd"
+
# Set limit of maximum APIs queued on one domain. All other APIs
# over this threshold will fail on acquiring job lock. Specially,
virStringListFree(cfg->securityDriverNames);
VIR_FREE(cfg->lockManagerName);
+ VIR_FREE(cfg->metadataLockManagerName);
virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares);
if (virConfGetValueString(conf, "lock_manager", &cfg->lockManagerName) < 0)
goto cleanup;
+
+ if (virConfGetValueString(conf, "metadata_lock_manager",
+ &cfg->metadataLockManagerName) < 0)
+ goto cleanup;
+ if (cfg->metadataLockManagerName &&
+ STRNEQ(cfg->metadataLockManagerName, "lockd")) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unknown metadata lock manager name %s"),
+ cfg->metadataLockManagerName);
+ goto cleanup;
+ }
+
if (virConfGetValueString(conf, "stdio_handler", &stdioHandler) < 0)
goto cleanup;
if (stdioHandler) {
bool autoStartBypassCache;
char *lockManagerName;
+ char *metadataLockManagerName;
int keepAliveInterval;
unsigned int keepAliveCount;
{ "mac_filter" = "1" }
{ "relaxed_acs_check" = "1" }
{ "lock_manager" = "lockd" }
+{ "metadata_lock_manager" = "lockd" }
{ "max_queued" = "0" }
{ "keepalive_interval" = "5" }
{ "keepalive_count" = "5" }