From: Alexey Dobriyan Two lines -- two bugs. :-( Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton --- fs/cramfs/inode.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff -puN fs/cramfs/inode.c~cramfs-rewrite-init_cramfs_fs fs/cramfs/inode.c --- a/fs/cramfs/inode.c~cramfs-rewrite-init_cramfs_fs +++ a/fs/cramfs/inode.c @@ -543,8 +543,15 @@ static struct file_system_type cramfs_fs static int __init init_cramfs_fs(void) { - cramfs_uncompress_init(); - return register_filesystem(&cramfs_fs_type); + int rv; + + rv = cramfs_uncompress_init(); + if (rv < 0) + return rv; + rv = register_filesystem(&cramfs_fs_type); + if (rv < 0) + cramfs_uncompress_exit(); + return rv; } static void __exit exit_cramfs_fs(void) _