]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-linux-module-error-handling-20070821
authorDerrick Brashear <shadow@dementia.org>
Wed, 22 Aug 2007 03:17:52 +0000 (03:17 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 22 Aug 2007 03:17:52 +0000 (03:17 +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 71d3e49d6ffb48b4a4dfff4a3e747f0a6cfd0351..1d9f923353155326db52a2c976a76df9463cdcce 100644 (file)
@@ -94,11 +94,20 @@ init_module(void)
        return err;
 #endif
     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
@@ -120,9 +129,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();