[lvm-devel] main - lvmlockd: cleanup after sanlock_rem_lockspace error

David Teigland teigland at sourceware.org
Tue Jan 4 20:57:44 UTC 2022


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=42a16aa6f34d801bfea169b4f6d1fef5d89961f6
Commit:        42a16aa6f34d801bfea169b4f6d1fef5d89961f6
Parent:        04fbffb116eaf5fb1b10785df92966d0083b270f
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Tue Jan 4 14:47:31 2022 -0600
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Tue Jan 4 14:53:47 2022 -0600

lvmlockd: cleanup after sanlock_rem_lockspace error

When storage is lost under a sanlock VG, and kill_vg/drop_vg
are used, sanlock_rem_lockspace() may return an error, but
the cleanup steps should still be performed.  Without the
cleanup, gl_lsname_sanlock was not cleared.  This caused
future lock requests to fail with ENOLS, but the NO_GL_LS
flag was not set due to gl_lsname_sanlock being set.
This caused lockd_global(sh) in lvm commands to fail when
they could succeed.

Fix from guozhonghua216
---
 daemons/lvmlockd/lvmlockd-sanlock.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/daemons/lvmlockd/lvmlockd-sanlock.c b/daemons/lvmlockd/lvmlockd-sanlock.c
index e595eeffd..3f078ea41 100644
--- a/daemons/lvmlockd/lvmlockd-sanlock.c
+++ b/daemons/lvmlockd/lvmlockd-sanlock.c
@@ -1576,10 +1576,8 @@ int lm_rem_lockspace_sanlock(struct lockspace *ls, int free_vg)
 		goto out;
 
 	rv = sanlock_rem_lockspace(&lms->ss, 0);
-	if (rv < 0) {
+	if (rv < 0)
 		log_error("S %s rem_lockspace_san error %d", ls->name, rv);
-		return rv;
-	}
 
 	if (free_vg) {
 		/*




More information about the lvm-devel mailing list