]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-linux-module-error-handling-20070821
authorDerrick Brashear <shadow@dementia.org>
Wed, 22 Aug 2007 03:19:28 +0000 (03:19 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 22 Aug 2007 03:19:28 +0000 (03:19 +0000)
be more careful about what we call when, and clean up after ourselves

(cherry picked from commit c31cfea03d95779cf334c7aa0c08067e49dc5d47)

src/afs/LINUX/osi_module.c

index 19408f8d57d6e7c290926e9fd8440353dc805201..9d5ec7362933e296834d8f3c720e66c3f7184815 100644 (file)
@@ -370,11 +370,20 @@ init_module(void)
     if (err)
        return err;
     err = afs_init_inodecache();
-    if (err)
+    if (err) {
+#ifndef LINUX_KEYRING_SUPPORT
+       osi_syscall_clean();
+#endif
        return err;
+    }
     err = register_filesystem(&afs_fs_type);
-    if (err)
-      return err;
+    if (err) {
+       afs_destroy_inodecache();
+#ifndef LINUX_KEYRING_SUPPORT
+       osi_syscall_clean();
+#endif
+       return err;
+    }
 
     osi_sysctl_init();
 #ifdef LINUX_KEYRING_SUPPORT
@@ -395,9 +404,13 @@ void
 cleanup_module(void)
 #endif
 {
+#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();