From f79363865910cfc7ccbf6ef420567cb027450225 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 22 Aug 2007 03:17:52 +0000 Subject: [PATCH] DEVEL15-linux-module-error-handling-20070821 be more careful about what we call when, and clean up after ourselves (cherry picked from commit c31cfea03d95779cf334c7aa0c08067e49dc5d47) --- src/afs/LINUX/osi_module.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/afs/LINUX/osi_module.c b/src/afs/LINUX/osi_module.c index 71d3e49d6..1d9f92335 100644 --- a/src/afs/LINUX/osi_module.c +++ b/src/afs/LINUX/osi_module.c @@ -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(); -- 2.39.5