Hello community,

here is the log from the commit of package libdlm for openSUSE:Factory checked 
in at 2014-05-22 09:04:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdlm (Old)
 and      /work/SRC/openSUSE:Factory/.libdlm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libdlm"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libdlm/libdlm.changes    2014-05-05 
21:09:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libdlm.new/libdlm.changes       2014-05-22 
09:04:25.000000000 +0200
@@ -1,0 +2,6 @@
+Tue May 20 08:06:58 UTC 2014 - [email protected]
+
+- fix different behavior when nodes without quorum
+   + bnc#874705nodes-without-quorum.patch 
+
+-------------------------------------------------------------------

New:
----
  bnc#874705nodes-without-quorum.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libdlm.spec ++++++
--- /var/tmp/diff_new_pack.i7RIHp/_old  2014-05-22 09:04:26.000000000 +0200
+++ /var/tmp/diff_new_pack.i7RIHp/_new  2014-05-22 09:04:26.000000000 +0200
@@ -37,6 +37,7 @@
 Patch2:         build-dlm_stonith.patch
 Patch3:         remove-sd-notify.patch
 Patch4:         bnc#875122dlm_controld-fix-long-name-in-log-entry.patch
+Patch5:         bnc#874705nodes-without-quorum.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  glib2-devel
 BuildRequires:  libcorosync-devel
@@ -77,6 +78,7 @@
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 ###########################################################
 
 %build

++++++ bnc#874705nodes-without-quorum.patch ++++++
Index: libdlm-4.0.2/dlm_controld/cpg.c
===================================================================
--- libdlm-4.0.2.orig/dlm_controld/cpg.c
+++ libdlm-4.0.2/dlm_controld/cpg.c
@@ -1261,6 +1261,19 @@ void process_lockspace_changes(void)
        poll_fs = 0;
 
        list_for_each_entry_safe(ls, safe, &lockspaces, list) {
+               if (ls->leaving && !(opt(enable_quorum_lockspace_ind) 
+                                       && !cluster_quorate)) {
+                   log_group(ls, "confchg for our leave");
+                   stop_kernel(ls, 0);
+                   set_configfs_members(ls, ls->name, 0, NULL, 0, NULL);
+                   set_sysfs_event_done(ls->name, 0);
+                   cpg_finalize(ls->cpg_handle);
+                   client_dead(ls->cpg_client);
+                   purge_plocks(ls, our_nodeid, 1);
+                   list_del(&ls->list);
+                   free_ls(ls);
+                   return;
+               }
                if (!list_empty(&ls->changes))
                        apply_changes(ls);
        }
@@ -1414,7 +1427,10 @@ static void confchg_cb(cpg_handle_t hand
                return;
        }
 
-       if (ls->leaving && we_left(left_list, left_list_entries)) {
+       /*check currently if we have quorum in order to keep the 
+         same behavior with other nodes*/
+       if (ls->leaving && we_left(left_list, left_list_entries)
+                       && !(opt(enable_quorum_lockspace_ind) && 
!cluster_quorate)) {
                /* we called cpg_leave(), and this should be the final
                   cpg callback we receive */
                log_group(ls, "confchg for our leave");
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to