LINUX: Initialize CellLRU during osi_Init
[openafs.git] / src / afs / LINUX / osi_module.c
index e5a25d9..47e32cf 100644 (file)
@@ -24,9 +24,6 @@
 #ifdef AFS_AMD64_LINUX20_ENV
 #include <asm/ia32_unistd.h>
 #endif
-#ifdef AFS_SPARC64_LINUX20_ENV
-#include <linux/ioctl32.h>
-#endif
 
 #include <linux/proc_fs.h>
 #include <linux/slab.h>
@@ -45,35 +42,42 @@ DECLARE_MUTEX(afs_global_lock);
 #endif
 int afs_global_owner = 0;
 
+#ifdef HAVE_LINUX_KUID_T
+struct user_namespace *afs_ns;
+#endif
+
 int __init
 afs_init(void)
 {
     int err;
-    AFS_RWLOCK_INIT(&afs_xosi, "afs_xosi");
+
+#ifdef HAVE_LINUX_KUID_T
+    afs_ns = afs_current_user_ns();
+#endif
 
     osi_Init();
+
+    /* Initialize CellLRU since it is used while traversing CellServDB proc
+     * entry */
+
+    QInit(&CellLRU);
+
 #if !defined(AFS_NONFSTRANS)
     osi_linux_nfssrv_init();
 #endif
 
-#ifndef LINUX_KEYRING_SUPPORT
     err = osi_syscall_init();
     if (err)
        return err;
-#endif
     err = afs_init_inodecache();
     if (err) {
-#ifndef LINUX_KEYRING_SUPPORT
        osi_syscall_clean();
-#endif
        return err;
     }
     err = register_filesystem(&afs_fs_type);
     if (err) {
        afs_destroy_inodecache();
-#ifndef LINUX_KEYRING_SUPPORT
        osi_syscall_clean();
-#endif
        return err;
     }
 
@@ -83,9 +87,6 @@ afs_init(void)
 #endif
     osi_proc_init();
     osi_ioctl_init();
-#if defined(AFS_CACHE_BYPASS)
-    afs_warn("Cache bypass patched libafs module init.\n");
-#endif
     afs_init_pagecopy();
 
     return 0;
@@ -94,25 +95,20 @@ afs_init(void)
 void __exit
 afs_cleanup(void)
 {
-#if defined(AFS_CACHE_BYPASS)
-    afs_warn("Cache bypass patched libafs module cleaning up.\n");
-#endif
-
     afs_shutdown_pagecopy();
 
 #ifdef LINUX_KEYRING_SUPPORT
     osi_keyring_shutdown();
 #endif
     osi_sysctl_clean();
-#ifndef LINUX_KEYRING_SUPPORT
     osi_syscall_clean();
-#endif
     unregister_filesystem(&afs_fs_type);
 
     afs_destroy_inodecache();
 #if !defined(AFS_NONFSTRANS)
     osi_linux_nfssrv_shutdown();
 #endif
+    shutdown_osisleep();
     osi_linux_free_afs_memory();
 
     osi_ioctl_clean();