From: Will Dyson <will_dyson@pobox.com>

Remember to free the inode cache if register_filesystem() fails.


 25-akpm/fs/befs/linuxvfs.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff -puN fs/befs/linuxvfs.c~befs-memleak-fix fs/befs/linuxvfs.c
--- 25/fs/befs/linuxvfs.c~befs-memleak-fix	Wed Sep 24 14:50:12 2003
+++ 25-akpm/fs/befs/linuxvfs.c	Wed Sep 24 14:50:12 2003
@@ -947,9 +947,19 @@ init_befs_fs(void)
 
 	err = befs_init_inodecache();
 	if (err)
-		return err;
+		goto unaquire_none;
 
-	return register_filesystem(&befs_fs_type);
+	err = register_filesystem(&befs_fs_type);
+	if (err)
+		goto unaquire_inodecache;
+
+	return 0;
+
+unaquire_inodecache:
+	befs_destroy_inodecache();
+
+unaquire_none:
+	return err;
 }
 
 static void __exit

_