From 42a16aa6f34d801bfea169b4f6d1fef5d89961f6 Mon Sep 17 00:00:00 2001 From: David Teigland Date: Tue, 4 Jan 2022 14:47:31 -0600 Subject: [PATCH] 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) { /*