[Linux-cluster] GFS compile errors on FC3

Nate Carlson natecars at natecarlson.com
Mon Jun 6 18:21:14 UTC 2005


On Mon, 6 Jun 2005, Chris Feist wrote:
> The RHEL4U1 branch is what will be released soon.  The RHEL4 branch is a 
> somewhat less tested branch that contains features and enhancements that 
> will be in RHEL4U2.

Great - thanks.

Just for future reference, I've attached a patch (just copied code back 
from HEAD) that allows the current 'RHEL4' branch to build on a Debian 
Testing system, with Linus's 2.6.11.10 kernel. It builds, haven't tested 
if it works yet.  :)

------------------------------------------------------------------------
| nate carlson | natecars at natecarlson.com | http://www.natecarlson.com |
|       depriving some poor village of its idiot since 1981            |
------------------------------------------------------------------------
-------------- next part --------------
diff -Naur cluster/gfs-kernel/src/gfs/ops_file.c cluster.nc/gfs-kernel/src/gfs/ops_file.c
--- cluster/gfs-kernel/src/gfs/ops_file.c	2005-06-06 13:18:30.000000000 -0500
+++ cluster.nc/gfs-kernel/src/gfs/ops_file.c	2005-06-06 13:15:28.000000000 -0500
@@ -1443,9 +1443,22 @@
 		return -ENOLCK;
 
 	if (sdp->sd_args.ar_localflocks) {
-		if (IS_GETLK(cmd))
-			return LOCK_USE_CLNT;
-		return posix_lock_file_wait(file, fl);
+		if (IS_GETLK(cmd)) {
+			struct file_lock *tmp;
+			lock_kernel();
+			tmp = posix_test_lock(file, fl);
+			fl->fl_type = F_UNLCK;
+			if (tmp)
+				memcpy(fl, tmp, sizeof(struct file_lock));
+			unlock_kernel();
+			return 0;
+		} else {
+			int error;
+			lock_kernel();
+			error = posix_lock_file_wait(file, fl);
+			unlock_kernel();
+			return error;
+		}
 	}
 
 	if (IS_GETLK(cmd))
diff -Naur cluster/gfs-kernel/src/gfs/quota.c cluster.nc/gfs-kernel/src/gfs/quota.c
--- cluster/gfs-kernel/src/gfs/quota.c	2005-06-06 13:18:30.000000000 -0500
+++ cluster.nc/gfs-kernel/src/gfs/quota.c	2005-06-06 13:16:49.000000000 -0500
@@ -961,7 +961,7 @@
 	if (current->signal) {
 		tty = current->signal->tty;
 		if (tty && tty->driver->write)
-			tty->driver->write(tty, 0, line, len);
+			tty->driver->write(tty, line, len);
 	}
 
 	kfree(line);
diff -Naur cluster/gfs-kernel/src/nolock/main.c cluster.nc/gfs-kernel/src/nolock/main.c
--- cluster/gfs-kernel/src/nolock/main.c	2005-06-06 13:18:30.000000000 -0500
+++ cluster.nc/gfs-kernel/src/nolock/main.c	2005-06-06 13:11:07.000000000 -0500
@@ -17,6 +17,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/fs.h>
+#include <linux/smp_lock.h>
 #include <linux/lm_interface.h>
 
 #define RELEASE_NAME "<CVS>"
@@ -242,7 +243,16 @@
 		 struct lm_lockname *name,
 		 struct file *file, struct file_lock *fl)
 {
-	return LOCK_USE_CLNT;
+	struct file_lock *tmp;
+
+	lock_kernel();
+	tmp = posix_test_lock(file, fl);
+	fl->fl_type = F_UNLCK;
+	if (tmp)
+		memcpy(fl, tmp, sizeof(struct file_lock));
+	unlock_kernel();
+
+	return 0;
 }
 
 /**
@@ -261,7 +271,11 @@
 	     struct lm_lockname *name,
 	     struct file *file, int cmd, struct file_lock *fl)
 {
-	return posix_lock_file_wait(file, fl);
+	int error;
+	lock_kernel();
+	error = posix_lock_file_wait(file, fl);
+	unlock_kernel();
+	return error;
 }
 
 /**
@@ -279,7 +293,11 @@
 	       struct lm_lockname *name,
 	       struct file *file, struct file_lock *fl)
 {
-	return posix_lock_file_wait(file, fl);
+	int error;
+	lock_kernel();
+	error = posix_lock_file_wait(file, fl);
+	unlock_kernel();
+	return error;
 }
 
 /**


More information about the Linux-cluster mailing list