--- /dev/null
+commit 8b6c9bb794361c75b0aa96bede8a3f71d1dd663e
+Author: Jacek Konieczny <jajcus@jajcus.net>
+Date: Wed Dec 12 11:59:42 2012 +0100
+
+ clvmd: command timeout handling fix
+
+ clvmd would wait for select() to time-out before processing command
+ time-outs. The select timeout would be set to the cmd_timeout ('-t'
+ command-line option) value, which is 60 seconds by default.
+
+ Normally the select() call is woken up more frequently, so the command
+ time-outs are never processed. This causes LVM tools wait forever on
+ cluster locking for operations started during temporary cluster
+ problems.
+
+ Signed-off-by: Jacek Konieczny <jajcus@jajcus.net>
+
+diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
+index eb0bffd..2b5d753 100644
+--- a/daemons/clvmd/clvmd.c
++++ b/daemons/clvmd/clvmd.c
+@@ -939,8 +939,8 @@ static void main_loop(int local_sock, int cmd_timeout)
+ }
+ }
+
+- /* Select timed out. Check for clients that have been waiting too long for a response */
+- if (select_status == 0) {
++ /* Check for clients that have been waiting too long for a response */
++ if (select_status >= 0) {
+ time_t the_time = time(NULL);
+
+ for (thisfd = &local_client_head; thisfd != NULL;
Patch5: %{name}-wrapper.patch
Patch6: %{name}-lvm_path.patch
Patch7: %{name}-sd_notify.patch
+Patch8: %{name}-clvmd_cmd_timeout.patch
URL: http://sources.redhat.com/lvm2/
BuildRequires: autoconf >= 2.61
BuildRequires: automake
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
# do not force --export-symbol linker option for e.g. statically linked executables
# -rdynamic compiler option drives linker in the right way.