From c9cc95cec9c078828ca5a7616023ff6a676a02786769000528ca929fd2daaf5a Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Wed, 7 Jul 2021 17:33:10 +0000 Subject: [PATCH] - virtlockd: Don't report error if lockspace exists de1e0ae0-lockd-no-error-if-lockspace.patch bsc#1184253 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=896 --- de1e0ae0-lockd-no-error-if-lockspace.patch | 68 ++++++++++++++++++++++ libvirt.changes | 7 +++ libvirt.spec | 1 + 3 files changed, 76 insertions(+) create mode 100644 de1e0ae0-lockd-no-error-if-lockspace.patch diff --git a/de1e0ae0-lockd-no-error-if-lockspace.patch b/de1e0ae0-lockd-no-error-if-lockspace.patch new file mode 100644 index 0000000..d629970 --- /dev/null +++ b/de1e0ae0-lockd-no-error-if-lockspace.patch @@ -0,0 +1,68 @@ +commit de1e0ae0e3119e9bfd0c21e8502e64c076009861 +Author: Jim Fehlig +Date: Wed Jun 30 16:36:42 2021 -0600 + + virtlockd: Don't report error if lockspace exists + + When the qemu or libxl driver is configured to use lockd and + file_lockspace_dir is set, virtlockd emits an error when libvirtd + is retarted + + May 25 15:44:31 virt81 virtlockd[7723]: Requested operation is not + valid: Lockspace for path /data/libvirtd/lockspace already exists + + There is really no need to fail when the lockspace already exists, + paricularly since the user is expected to create the lockspace + specified in file_lockspace_dir. Failure to do so will prevent + starting any domains + + virsh start test + error: Failed to start domain 'test' + error: Unable to open/create resource /data/libvirtd/lockspace/de22c4bf931e7c48b49e8ca64b477d44e78a51543e534df488b05ccd08ec5caa: No such file or directory + + Also, virLockManagerLockDaemonSetupLockspace already has logic to ignore + the error. Since callers are not interested in the error, change + virtlockd to not report or return an error when the specified lockspace + already exists. + + Signed-off-by: Jim Fehlig + Reviewed-by: Daniel Henrique Barboza + +Index: libvirt-7.5.0/src/locking/lock_daemon_dispatch.c +=================================================================== +--- libvirt-7.5.0.orig/src/locking/lock_daemon_dispatch.c ++++ libvirt-7.5.0/src/locking/lock_daemon_dispatch.c +@@ -405,9 +405,8 @@ virLockSpaceProtocolDispatchCreateLockSp + } + + if (virLockDaemonFindLockSpace(lockDaemon, args->path) != NULL) { +- virReportError(VIR_ERR_OPERATION_INVALID, +- _("Lockspace for path %s already exists"), +- args->path); ++ VIR_DEBUG("Lockspace for path %s already exists", args->path); ++ rv = 0; + goto cleanup; + } + +Index: libvirt-7.5.0/src/locking/lock_driver_lockd.c +=================================================================== +--- libvirt-7.5.0.orig/src/locking/lock_driver_lockd.c ++++ libvirt-7.5.0/src/locking/lock_driver_lockd.c +@@ -281,15 +281,8 @@ static int virLockManagerLockDaemonSetup + VIR_LOCK_SPACE_PROTOCOL_PROC_CREATE_LOCKSPACE, + 0, NULL, NULL, NULL, + (xdrproc_t)xdr_virLockSpaceProtocolCreateLockSpaceArgs, (char*)&args, +- (xdrproc_t)xdr_void, NULL) < 0) { +- if (virGetLastErrorCode() == VIR_ERR_OPERATION_INVALID) { +- /* The lockspace already exists */ +- virResetLastError(); +- rv = 0; +- } else { +- goto cleanup; +- } +- } ++ (xdrproc_t)xdr_void, NULL) < 0) ++ goto cleanup; + + rv = 0; + diff --git a/libvirt.changes b/libvirt.changes index 0d2d34e..e15ccc4 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jul 7 15:54:59 UTC 2021 - James Fehlig + +- virtlockd: Don't report error if lockspace exists + de1e0ae0-lockd-no-error-if-lockspace.patch + bsc#1184253 + ------------------------------------------------------------------- Thu Jul 1 14:17:12 UTC 2021 - James Fehlig diff --git a/libvirt.spec b/libvirt.spec index c57aa98..6bdaa19 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -290,6 +290,7 @@ Source6: libvirtd-relocation-server.xml Source99: baselibs.conf Source100: %{name}-rpmlintrc # Upstream patches +Patch0: de1e0ae0-lockd-no-error-if-lockspace.patch # Patches pending upstream review Patch100: libxl-dom-reset.patch Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch