On Thursday 03 July 2003 12:03, Tejaswi Redkar wrote:
> Hi! Below is the procedure and the error, could you tell me what I
> did wrong ?
>
> 1) Red Hat 9.0
> 2) Downloaded jfs-2.4-1.1.2.tar.gz  from the web site and unzipped
> 3) Copied the jfs directory from the 2.4-1.1.2 to the
> /use/src/linux.../fs directory to replace the existing jfs directory
> 4) Enabled the Kernel for JFS using make xconfig
> 5) make dep
> 6) make clean
> 7) make bzImage
> 8) make install
>
> This failed with an error
> jfs_logmgr.c: In function jfsIOWait:
> 2177: structure has no member named sigmask_lock
> 2179: too many arguments to function recalc_sigpending
>
> Did I mess up somewhere ? PLease help

No, you didn't mess up.  Redhat made a change that is not in the 
standard kernel that caused JFS to break.  The patch below is in the 
current JFS cvs tree and should make your compile work.

Thanks,
Shaggy

diff -Nur jfs-1.1.2/fs/jfs/jfs_compat.h linux/fs/jfs/jfs_compat.h
--- jfs-1.1.2/fs/jfs/jfs_compat.h       Wed Sep 11 07:21:04 2002
+++ linux/fs/jfs/jfs_compat.h   Thu Jul  3 12:41:13 2003
@@ -31,6 +31,7 @@
 #include <linux/module.h>
 #include <linux/version.h>
 #include <linux/slab.h>
+#include <linux/sched.h>
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
 #include "endian24.h"
@@ -94,4 +95,18 @@
        return bread(sb->s_dev, block, sb->s_blocksize);
 }
 #endif
+
+/*
+ * Newer Redhat kernels have some changes to sched.h.  This test
+ * for INIT_SIGHAND is not fool-proof, but it should be good enough to
+ * keep JFS compiling correctly for now
+ */
+#ifdef INIT_SIGHAND
+       #define Sigmask_lock sighand->siglock
+       #define Recalc_sigpending(current) recalc_sigpending()
+#else
+       #define Sigmask_lock sigmask_lock
+       #define Recalc_sigpending recalc_sigpending
+#endif
+
 #endif                         /* !_H_JFS_COMPAT */
diff -Nur jfs-1.1.2/fs/jfs/jfs_logmgr.c linux/fs/jfs/jfs_logmgr.c
--- jfs-1.1.2/fs/jfs/jfs_logmgr.c       Mon Mar 10 12:37:45 2003
+++ linux/fs/jfs/jfs_logmgr.c   Thu Jul  3 12:40:31 2003
@@ -2174,10 +2174,10 @@
 
        unlock_kernel();
 
-       spin_lock_irq(&current->sigmask_lock);
+       spin_lock_irq(&current->Sigmask_lock);
        sigfillset(&current->blocked);
-       recalc_sigpending(current);
-       spin_unlock_irq(&current->sigmask_lock);
+       Recalc_sigpending(current);
+       spin_unlock_irq(&current->Sigmask_lock);
 
        complete(&jfsIOwait);
 
diff -Nur jfs-1.1.2/fs/jfs/jfs_txnmgr.c linux/fs/jfs/jfs_txnmgr.c
--- jfs-1.1.2/fs/jfs/jfs_txnmgr.c       Mon Mar 24 15:03:08 2003
+++ linux/fs/jfs/jfs_txnmgr.c   Thu Jul  3 12:40:31 2003
@@ -2769,10 +2769,10 @@
 
        jfsCommitTask = current;
 
-       spin_lock_irq(&current->sigmask_lock);
+       spin_lock_irq(&current->Sigmask_lock);
        sigfillset(&current->blocked);
-       recalc_sigpending(current);
-       spin_unlock_irq(&current->sigmask_lock);
+       Recalc_sigpending(current);
+       spin_unlock_irq(&current->Sigmask_lock);
 
        LAZY_LOCK_INIT();
        TxAnchor.unlock_queue = TxAnchor.unlock_tail = 0;
@@ -2972,10 +2972,10 @@
 
        unlock_kernel();
 
-       spin_lock_irq(&current->sigmask_lock);
+       spin_lock_irq(&current->Sigmask_lock);
        sigfillset(&current->blocked);
-       recalc_sigpending(current);
-       spin_unlock_irq(&current->sigmask_lock);
+       Recalc_sigpending(current);
+       spin_unlock_irq(&current->Sigmask_lock);
 
        complete(&jfsIOwait);
 

-- 
David Kleikamp
IBM Linux Technology Center

_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to