![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
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 - lzhong@suse.com + +- 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org