From f1a40359f8d8ba073257ed31a513e492621bcbc5 Mon Sep 17 00:00:00 2001 From: Phillip Lougher Date: Wed, 23 Sep 2009 19:04:49 +0100 Subject: Squashfs: factor out remaining zlib dependencies into separate wrapper file Move zlib buffer init/destroy code into separate wrapper file. Also make zlib z_stream field a void * removing the need to include zlib.h for most files. Signed-off-by: Phillip Lougher --- fs/squashfs/super.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'fs/squashfs/super.c') diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c index 6c197ef53ad..b9f8c6a92d6 100644 --- a/fs/squashfs/super.c +++ b/fs/squashfs/super.c @@ -35,7 +35,6 @@ #include #include #include -#include #include #include "squashfs_fs.h" @@ -87,12 +86,9 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent) } msblk = sb->s_fs_info; - msblk->stream.workspace = kmalloc(zlib_inflate_workspacesize(), - GFP_KERNEL); - if (msblk->stream.workspace == NULL) { - ERROR("Failed to allocate zlib workspace\n"); + msblk->stream = squashfs_zlib_init(); + if (msblk->stream == NULL) goto failure; - } sblk = kzalloc(sizeof(*sblk), GFP_KERNEL); if (sblk == NULL) { @@ -292,17 +288,17 @@ failed_mount: squashfs_cache_delete(msblk->block_cache); squashfs_cache_delete(msblk->fragment_cache); squashfs_cache_delete(msblk->read_page); + squashfs_zlib_free(msblk->stream); kfree(msblk->inode_lookup_table); kfree(msblk->fragment_index); kfree(msblk->id_table); - kfree(msblk->stream.workspace); kfree(sb->s_fs_info); sb->s_fs_info = NULL; kfree(sblk); return err; failure: - kfree(msblk->stream.workspace); + squashfs_zlib_free(msblk->stream); kfree(sb->s_fs_info); sb->s_fs_info = NULL; return -ENOMEM; @@ -346,10 +342,10 @@ static void squashfs_put_super(struct super_block *sb) squashfs_cache_delete(sbi->block_cache); squashfs_cache_delete(sbi->fragment_cache); squashfs_cache_delete(sbi->read_page); + squashfs_zlib_free(sbi->stream); kfree(sbi->id_table); kfree(sbi->fragment_index); kfree(sbi->meta_index); - kfree(sbi->stream.workspace); kfree(sb->s_fs_info); sb->s_fs_info = NULL; } -- cgit v1.2.3