summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WHATS_NEW1
-rw-r--r--daemons/clvmd/clvmd-cman.c9
-rw-r--r--daemons/clvmd/clvmd-corosync.c11
3 files changed, 16 insertions, 5 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 3454dea8..6079e9d5 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.45 -
===================================
+ Allow clvmd to start up if its lockspace already exists.
Separate PV label attributes which do not need parse metadata when reporting.
Remove external dependency on the 'cut' command in fsadm.
Fix pvs segfault when pv mda attributes requested for not available PV.
diff --git a/daemons/clvmd/clvmd-cman.c b/daemons/clvmd/clvmd-cman.c
index b03f880d..a853b3bb 100644
--- a/daemons/clvmd/clvmd-cman.c
+++ b/daemons/clvmd/clvmd-cman.c
@@ -110,8 +110,13 @@ static int _init_cluster(void)
/* Create a lockspace for LV & VG locks to live in */
lockspace = dlm_create_lockspace(LOCKSPACE_NAME, 0600);
if (!lockspace) {
- syslog(LOG_ERR, "Unable to create lockspace for CLVM: %m");
- return -1;
+ if (errno == EEXIST) {
+ lockspace = dlm_open_lockspace(LOCKSPACE_NAME);
+ }
+ if (!lockspace) {
+ syslog(LOG_ERR, "Unable to create lockspace for CLVM: %m");
+ return -1;
+ }
}
dlm_ls_pthread_init(lockspace);
DEBUGLOG("DLM initialisation complete\n");
diff --git a/daemons/clvmd/clvmd-corosync.c b/daemons/clvmd/clvmd-corosync.c
index 61dfe4d3..5a2c137b 100644
--- a/daemons/clvmd/clvmd-corosync.c
+++ b/daemons/clvmd/clvmd-corosync.c
@@ -314,9 +314,14 @@ static int _init_cluster(void)
/* Create a lockspace for LV & VG locks to live in */
lockspace = dlm_create_lockspace(LOCKSPACE_NAME, 0600);
if (!lockspace) {
- syslog(LOG_ERR, "Unable to create lockspace for CLVM: %m");
- quorum_finalize(quorum_handle);
- return -1;
+ if (errno == EEXIST) {
+ lockspace = dlm_open_lockspace(LOCKSPACE_NAME);
+ }
+ if (!lockspace) {
+ syslog(LOG_ERR, "Unable to create lockspace for CLVM: %m");
+ quorum_finalize(quorum_handle);
+ return -1;
+ }
}
dlm_ls_pthread_init(lockspace);
DEBUGLOG("DLM initialisation complete\n");