linux26-update-20040507
[openafs.git] / src / afs / LINUX / osi_module.c
index 77abefd..c174a2a 100644 (file)
@@ -36,12 +36,22 @@ RCSID
 #include <linux/syscall.h>
 #endif
 
+#if defined(AFS_LINUX26_ENV)
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+#endif
+
 #ifdef AFS_SPARC64_LINUX24_ENV
 #define __NR_setgroups32      82       /* This number is not exported for some bizarre reason. */
 #endif
 
+#if !defined(AFS_LINUX24_ENV)
 asmlinkage int (*sys_settimeofdayp) (struct timeval * tv,
                                     struct timezone * tz);
+#endif
 asmlinkage long (*sys_setgroupsp) (int gidsetsize, gid_t * grouplist);
 
 #ifdef EXPORTED_SYS_CALL_TABLE
@@ -57,7 +67,7 @@ static unsigned int *sys_call_table;  /* changed to uint because SPARC64 has sysc
 static void **sys_call_table;  /* safer for other linuces */
 #endif
 #endif
-extern struct file_system_type afs_file_system;
+extern struct file_system_type afs_fs_type;
 
 static long get_page_offset(void);
 
@@ -67,7 +77,9 @@ DECLARE_MUTEX(afs_global_lock);
 struct semaphore afs_global_lock = MUTEX;
 #endif
 int afs_global_owner = 0;
+#if !defined(AFS_LINUX24_ENV)
 unsigned long afs_linux_page_offset = 0;       /* contains the PAGE_OFFSET value */
+#endif
 
 /* Since sys_ni_syscall is not exported, I need to cache it in order to restore
  * it.
@@ -178,7 +190,7 @@ init_module(void)
 {
 #if defined(AFS_IA64_LINUX20_ENV)
     unsigned long kernel_gp = 0;
-    static struct fptr sys_settimeofday, sys_setgroups;
+    static struct fptr sys_setgroups;
 #endif
     extern int afs_syscall();
     extern long afs_xsetgroups();
@@ -214,6 +226,7 @@ init_module(void)
 
     RWLOCK_INIT(&afs_xosi, "afs_xosi");
 
+#if !defined(AFS_LINUX24_ENV)
     /* obtain PAGE_OFFSET value */
     afs_linux_page_offset = get_page_offset();
 
@@ -224,6 +237,7 @@ init_module(void)
        return -EIO;
     }
 #endif
+#endif
 #ifndef EXPORTED_SYS_CALL_TABLE
     sys_call_table = 0;
 
@@ -388,16 +402,7 @@ init_module(void)
 #endif
 
     /* Initialize pointers to kernel syscalls. */
-#if defined(AFS_IA64_LINUX20_ENV)
-    kernel_gp = ((struct fptr *)printk)->gp;
-
-    sys_settimeofdayp = (void *)&sys_settimeofday;
-
-    ((struct fptr *)sys_settimeofdayp)->ip =
-       SYSCALL2POINTER sys_call_table[__NR_settimeofday - 1024];
-    ((struct fptr *)sys_settimeofdayp)->gp = kernel_gp;
-
-#else /* !AFS_IA64_LINUX20_ENV */
+#if !defined(AFS_LINUX24_ENV)
     sys_settimeofdayp = SYSCALL2POINTER sys_call_table[__NR_settimeofday];
 #endif /* AFS_IA64_LINUX20_ENV */
 
@@ -433,7 +438,7 @@ init_module(void)
 #endif /* AFS_S390_LINUX22_ENV */
 
     osi_Init();
-    register_filesystem(&afs_file_system);
+    register_filesystem(&afs_fs_type);
 
     /* Intercept setgroups calls */
 #if defined(AFS_IA64_LINUX20_ENV)
@@ -534,7 +539,7 @@ cleanup_module(void)
     set_afs_xsetgroups_syscall(sys_setgroupsp);
     set_afs_xsetgroups_syscall32(sys32_setgroupsp);
 #endif
-    unregister_filesystem(&afs_file_system);
+    unregister_filesystem(&afs_fs_type);
 
     osi_linux_free_inode_pages();      /* Invalidate all pages using AFS inodes. */
     osi_linux_free_afs_memory();
@@ -548,6 +553,7 @@ module_exit(afs_cleanup);
 #endif
 
 
+#if !defined(AFS_LINUX24_ENV)
 static long
 get_page_offset(void)
 {
@@ -580,3 +586,4 @@ get_page_offset(void)
     return 0;
 #endif
 }
+#endif /* !AFS_LINUX24_ENV */