This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cluster Project branch, STABLE2, updated. cluster-2.03.01-4-gf3b6ea9


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=f3b6ea990e81e9234903a7fb65565f7dd3d3d43f

The branch, STABLE2 has been updated
       via  f3b6ea990e81e9234903a7fb65565f7dd3d3d43f (commit)
       via  0fdda26db52d31e20d0524168859dfbffce4ffa0 (commit)
       via  89c885f73b4d90c2be407125d62379fb32a11e3e (commit)
       via  a286ab41b67c9b6cd22fb88d862375e09259639e (commit)
      from  e80c1ff7cfb63e247a4479c4a20f65d373d99b62 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f3b6ea990e81e9234903a7fb65565f7dd3d3d43f
Author: Lon Hohberger <lhh@redhat.com>
Date:   Fri Apr 18 14:19:07 2008 -0400

    [fence] Close file descriptors that are in invalid/error states
    
    If poll was returning with a file descriptor noted as active,
    but with the POLLERR/POLLNVAL flags set (but not POLLIN or
    POLLHUP), fenced and groupd would enter a tight spin loop.
    
    This fixes that condition.

commit 0fdda26db52d31e20d0524168859dfbffce4ffa0
Author: Benjamin Marzinski <bmarzins@redhat.com>
Date:   Thu Apr 17 11:41:09 2008 -0500

    The gnbd kernel module on 64 bit architectures didn't handle ioctls from 32 bit
    userspace processes. Now it does.
    Resolves: bz #440454
    
    Also, I was getting an error because on ppc64, the manual definition of O_DIRECT
    in gnbd/server/device.c was incorrect. I switched to defining _GNU_SOURCE, which
    should mean that O_DIRECT will be automatically defined.

commit 89c885f73b4d90c2be407125d62379fb32a11e3e
Author: Lon Hohberger <lhh@redhat.com>
Date:   Wed Nov 14 17:17:15 2007 +0000

    Remove clushutdown man page references from clusvcadm.8; resolves #324151

commit a286ab41b67c9b6cd22fb88d862375e09259639e
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
Date:   Tue Apr 22 09:36:30 2008 +0200

    [rgmanager] Remove obsolete clushutdown utility
    
    Merge from RHEL5 branch.
    
    Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>

-----------------------------------------------------------------------

Summary of changes:
 fence/fenced/main.c             |    2 +-
 gnbd-kernel/src/gnbd.c          |   33 ++++++++++++++++++++++++
 gnbd/server/device.c            |    7 +---
 group/daemon/main.c             |    2 +-
 rgmanager/man/clushutdown.8     |   13 ---------
 rgmanager/man/clusvcadm.8       |   13 +++------
 rgmanager/src/utils/clushutdown |   53 ---------------------------------------
 7 files changed, 41 insertions(+), 82 deletions(-)
 delete mode 100644 rgmanager/man/clushutdown.8
 delete mode 100755 rgmanager/src/utils/clushutdown

diff --git a/fence/fenced/main.c b/fence/fenced/main.c
index 8f7960c..e9ebfb8 100644
--- a/fence/fenced/main.c
+++ b/fence/fenced/main.c
@@ -494,7 +494,7 @@ static int loop(void)
 		for (i = 1; i <= maxi; i++) {
 			if (client[i].fd < 0)
 				continue;
-			if (pollfd[i].revents & POLLHUP) {
+			if (pollfd[i].revents & (POLLERR | POLLHUP | POLLNVAL)) {
 				if (pollfd[i].fd == member_fd) {
 					log_error("cluster is down, exiting");
 					exit(1);
diff --git a/gnbd-kernel/src/gnbd.c b/gnbd-kernel/src/gnbd.c
index 9a6abe3..21ecf9d 100644
--- a/gnbd-kernel/src/gnbd.c
+++ b/gnbd-kernel/src/gnbd.c
@@ -30,6 +30,9 @@
 #include <linux/buffer_head.h>
 #include <linux/miscdevice.h>
 #include <linux/moduleparam.h>
+#ifdef CONFIG_COMPAT
+#include <linux/compat.h>
+#endif
 
 #include <asm/uaccess.h>
 #include <asm/types.h>
@@ -795,6 +798,33 @@ static int gnbd_ctl_ioctl(struct inode *inode, struct file *file,
 	return -EINVAL;
 }
 
+#ifdef CONFIG_COMPAT
+static long gnbd_ctl_compat_ioctl(struct file *f, unsigned cmd,
+				  unsigned long arg)
+{
+	int ret;
+	switch (cmd) {
+        case GNBD_DISCONNECT:
+        case GNBD_CLEAR_QUE:
+	case GNBD_PING:
+	case GNBD_PRINT_DEBUG:
+		lock_kernel();
+		ret = gnbd_ctl_ioctl(f->f_dentry->d_inode, f, cmd, arg);
+		unlock_kernel();
+		return ret;
+	case GNBD_DO_IT:
+	case GNBD_GET_TIME:
+		lock_kernel();
+		ret = gnbd_ctl_ioctl(f->f_dentry->d_inode, f, cmd,
+				     (unsigned long)compat_ptr(arg));
+		unlock_kernel();
+		return ret;
+	default:
+		return -ENOIOCTLCMD;
+	}
+}
+#endif
+
 static int gnbd_open(struct inode *inode, struct file *file)
 {
 	struct gnbd_device *dev = inode->i_bdev->bd_disk->private_data;
@@ -830,6 +860,9 @@ static int gnbd_release(struct inode *inode, struct file *file)
 static struct file_operations _gnbd_ctl_fops =
 {
         .ioctl = gnbd_ctl_ioctl,
+#ifdef CONFIG_COMPAT
+	.compat_ioctl = gnbd_ctl_compat_ioctl,
+#endif
         .owner = THIS_MODULE,
 };
 
diff --git a/gnbd/server/device.c b/gnbd/server/device.c
index 2c830ae..b547897 100644
--- a/gnbd/server/device.c
+++ b/gnbd/server/device.c
@@ -10,6 +10,7 @@
 *******************************************************************************
 ******************************************************************************/
 
+#define _GNU_SOURCE
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
@@ -27,10 +28,6 @@
 #define BLKGETSIZE64 _IOR(0x12, 114, uint64_t)
 #endif
 
-#ifndef O_DIRECT
-#define O_DIRECT 040000
-#endif
-
 #include "list.h"
 #include "gnbd_utils.h"
 #include "local_req.h"
@@ -106,7 +103,7 @@ int open_file(char *path, unsigned int flags, int *devfd)
   if (fd < 0){
     err = -errno;
     log_err("cannot open %s in %s%s mode : %s\n", path,
-           (flags & GNBD_FLAGS_READONLY)? "O_RDONLY" : "O_RDWR | OSYNC",
+           (flags & GNBD_FLAGS_READONLY)? "O_RDONLY" : "O_RDWR | O_SYNC",
            (flags & GNBD_FLAGS_UNCACHED)? " | O_DIRECT" : "",
            strerror(errno));
     return err;
diff --git a/group/daemon/main.c b/group/daemon/main.c
index 3274b79..af7d5bd 100644
--- a/group/daemon/main.c
+++ b/group/daemon/main.c
@@ -764,7 +764,7 @@ static int loop(void)
 		for (i = 0; i <= client_maxi; i++) {
 			if (client[i].fd < 0)
 				continue;
-			if (pollfd[i].revents & POLLHUP) {
+			if (pollfd[i].revents & (POLLERR | POLLHUP | POLLNVAL)) {
 				deadfn = client[i].deadfn;
 				deadfn(i);
 			} else if (pollfd[i].revents & POLLIN) {
diff --git a/rgmanager/man/clushutdown.8 b/rgmanager/man/clushutdown.8
deleted file mode 100644
index c63159f..0000000
--- a/rgmanager/man/clushutdown.8
+++ /dev/null
@@ -1,13 +0,0 @@
-.TH "clushutdown" "27" "Jan 2005" "" "Red Hat Cluster Suite"
-.SH "NAME"
-clushutdown \- Cluster Mass Service Shutdown
-.SH "DESCRIPTION"
-.PP 
-.B Clushutdown
-is responsible for stopping all services and ensuring that none are restarted
-when a member goes off line.  It is only useful for situations where an 
-administrator needs to take enough cluster members offline such that the
-cluster quorum will be disrupted.  This is not required for shutting down a
-single member when all other members are online.
-.SH "SEE ALSO"
-clusvcadm(8)
diff --git a/rgmanager/man/clusvcadm.8 b/rgmanager/man/clusvcadm.8
index dcc5691..20ae823 100644
--- a/rgmanager/man/clusvcadm.8
+++ b/rgmanager/man/clusvcadm.8
@@ -49,12 +49,8 @@ service
 Lock the local resource group manager.  This should only be used if the 
 administrator intends to perform a global, cluster-wide shutdown.  This
 prevents starting resource groups on the local node, allowing 
-services will not fail over during the shutdown of the cluster.  Generally,
-administrators should use the
-.B
-clushutdown(8)
-command to accomplish this.  Once the cluster quorum is dissolved, this
-state is reset.
+services will not fail over during the shutdown of the cluster.
+Once the cluster quorum is dissolved, this state is reset.
 .IP "\-m <member>"
 When used in conjunction with either the
 .B
@@ -88,11 +84,10 @@ service
 until a member transition or until it is enabled again.
 .IP \-u
 Unlock the cluster's service managers.  This allows services to transition
-again.  It will be necessary to re-enable all services in the stopped state
-if this is run after \fB clushutdown(8)\fR.
+again. 
 
 .IP \-v
 Display version information and exit.
 
 .SH "SEE ALSO"
-clustat(8), clushutdown(8)
+clustat(8)
diff --git a/rgmanager/src/utils/clushutdown b/rgmanager/src/utils/clushutdown
deleted file mode 100755
index ef3eb72..0000000
--- a/rgmanager/src/utils/clushutdown
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#
-# Stop all services and prepare the cluster for a TCO.
-#
-. /etc/init.d/functions
-
-action $"Ensuring this member is in the Quorum:" clustat -Q
-if [ $? -ne 0 ]; then
-	exit 1
-fi
-
-echo
-echo "WARNING: About to stop ALL services managed by Red Hat Cluster Manager."
-echo "         This should only be done when maintainence is required on "
-echo "         enough members to dissolve the Cluster Quorum.  This utility"
-echo "         generally does not need to be run when one cluster member"
-echo "         requires maintenance.  This NEVER needs to be run in two"
-echo "         member clusters."
-echo
-echo -n "Continue [yes/NO]? "
-read a
-if [ "$a" != "YES" -a "$a" != "yes" ]; then
-	echo
-	echo Aborted.
-	exit 0
-fi
-
-action $"Preparing for global service shutdown:" clusvcadm -u
-if [ $? -ne 0 ]; then
-	exit 1;
-fi
-
-errors=0
-for s in `cludb -m services%service[0-9]+%name | cut -f2 -d=`; do
-	action "Stopping service $s: " clusvcadm -q -s $s
-	if [ $? -ne 0 ]; then
-		exit 1
-	fi
-done
-
-echo "All clustered services are stopped."
-
-action $"Locking service managers:" clusvcadm -l
-if [ $? -ne 0 ]; then
-	exit 1
-fi
-
-echo 
-echo $"It is now safe to shut down all cluster members.  Be advised that"
-echo $"members not controlled by power switches may still reboot when "
-echo $"when the cluster quorum is disbanded."
-echo
-exit 0


hooks/post-receive
--
Cluster Project


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]