File bug-486952_clvmd-check-returncode-of-dlmrelease.diff of Package device-mapper

Index: LVM2.2.02.45/daemons/clvmd/clvmd-openais.c
===================================================================
--- LVM2.2.02.45.orig/daemons/clvmd/clvmd-openais.c
+++ LVM2.2.02.45/daemons/clvmd/clvmd-openais.c
@@ -371,7 +371,16 @@ static void _cluster_closedown(void)
 	DEBUGLOG("cluster_closedown\n");
 	unlock_all();
 
-	dlm_release_lockspace(LOCKSPACE_NAME, lockspace, 0);
+	int r;
+	r = dlm_release_lockspace(LOCKSPACE_NAME, lockspace, 0);
+	if (r == -1) {
+	   if (errno == EBUSY) {
+		syslog(LOG_ERR, "Some locks still active, close by force\n");
+		dlm_release_lockspace(LOCKSPACE_NAME, lockspace, 1);
+	   } else {
+		   syslog(LOG_ERR, "dlm_release_lockspace failed\n");
+	   }
+	}
 	cpg_finalize(cpg_handle);
 }
 
openSUSE Build Service is sponsored by