]> Pileus Git - ~andy/linux/blobdiff - fs/fat/inode.c
[PATCH] fat: fix slab cache leak
[~andy/linux] / fs / fat / inode.c
index 8ccee8415488af2eab846aaa017d68d25a7bba8d..3e31c4a736f1832a088782cb32790a88593a50e9 100644 (file)
@@ -1331,12 +1331,21 @@ void __exit fat_cache_destroy(void);
 
 static int __init init_fat_fs(void)
 {
-       int ret;
+       int err;
 
-       ret = fat_cache_init();
-       if (ret < 0)
-               return ret;
-       return fat_init_inodecache();
+       err = fat_cache_init();
+       if (err)
+               return err;
+
+       err = fat_init_inodecache();
+       if (err)
+               goto failed;
+
+       return 0;
+
+failed:
+       fat_cache_destroy();
+       return err;
 }
 
 static void __exit exit_fat_fs(void)