diff options
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/cache.c | 2 | ||||
-rw-r--r-- | fs/fat/inode.c | 21 |
2 files changed, 16 insertions, 7 deletions
diff --git a/fs/fat/cache.c b/fs/fat/cache.c index 7c52e465a6..77c24fcf71 100644 --- a/fs/fat/cache.c +++ b/fs/fat/cache.c | |||
@@ -56,7 +56,7 @@ int __init fat_cache_init(void) | |||
56 | return 0; | 56 | return 0; |
57 | } | 57 | } |
58 | 58 | ||
59 | void __exit fat_cache_destroy(void) | 59 | void fat_cache_destroy(void) |
60 | { | 60 | { |
61 | if (kmem_cache_destroy(fat_cache_cachep)) | 61 | if (kmem_cache_destroy(fat_cache_cachep)) |
62 | printk(KERN_INFO "fat_cache: not all structures were freed\n"); | 62 | printk(KERN_INFO "fat_cache: not all structures were freed\n"); |
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 8ccee84154..96ae85b67e 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
@@ -1327,16 +1327,25 @@ out_fail: | |||
1327 | EXPORT_SYMBOL(fat_fill_super); | 1327 | EXPORT_SYMBOL(fat_fill_super); |
1328 | 1328 | ||
1329 | int __init fat_cache_init(void); | 1329 | int __init fat_cache_init(void); |
1330 | void __exit fat_cache_destroy(void); | 1330 | void fat_cache_destroy(void); |
1331 | 1331 | ||
1332 | static int __init init_fat_fs(void) | 1332 | static int __init init_fat_fs(void) |
1333 | { | 1333 | { |
1334 | int ret; | 1334 | int err; |
1335 | 1335 | ||
1336 | ret = fat_cache_init(); | 1336 | err = fat_cache_init(); |
1337 | if (ret < 0) | 1337 | if (err) |
1338 | return ret; | 1338 | return err; |
1339 | return fat_init_inodecache(); | 1339 | |
1340 | err = fat_init_inodecache(); | ||
1341 | if (err) | ||
1342 | goto failed; | ||
1343 | |||
1344 | return 0; | ||
1345 | |||
1346 | failed: | ||
1347 | fat_cache_destroy(); | ||
1348 | return err; | ||
1340 | } | 1349 | } |
1341 | 1350 | ||
1342 | static void __exit exit_fat_fs(void) | 1351 | static void __exit exit_fat_fs(void) |