#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;
}
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();