X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Fgeneric-2.6%2Fpatches-2.6.33%2F002-squashfs_factor_out_remaining_zlib.patch;fp=target%2Flinux%2Fgeneric-2.6%2Fpatches-2.6.33%2F002-squashfs_factor_out_remaining_zlib.patch;h=0000000000000000000000000000000000000000;hp=eacbb97aef234f797fc34d360d5bf0042a7ba4d1;hb=c6ab1b23be796c1bbe1915ac566fe3377ae8109f;hpb=01131f5dd9f61be5a5c857152ca079f316fd7538 diff --git a/target/linux/generic-2.6/patches-2.6.33/002-squashfs_factor_out_remaining_zlib.patch b/target/linux/generic-2.6/patches-2.6.33/002-squashfs_factor_out_remaining_zlib.patch deleted file mode 100644 index eacbb97aef..0000000000 --- a/target/linux/generic-2.6/patches-2.6.33/002-squashfs_factor_out_remaining_zlib.patch +++ /dev/null @@ -1,317 +0,0 @@ -From 37c44e85fd49676ec15ccaeea065662c1fbcda7d Mon Sep 17 00:00:00 2001 -From: Phillip Lougher -Date: Wed, 23 Sep 2009 19:04:49 +0100 -Subject: [PATCH] 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/block.c | 1 - - fs/squashfs/cache.c | 1 - - fs/squashfs/dir.c | 1 - - fs/squashfs/export.c | 1 - - fs/squashfs/file.c | 1 - - fs/squashfs/fragment.c | 1 - - fs/squashfs/id.c | 1 - - fs/squashfs/inode.c | 1 - - fs/squashfs/namei.c | 1 - - fs/squashfs/squashfs.h | 2 + - fs/squashfs/squashfs_fs_sb.h | 2 +- - fs/squashfs/super.c | 14 +++------ - fs/squashfs/symlink.c | 1 - - fs/squashfs/zlib_wrapper.c | 56 ++++++++++++++++++++++++++++++++--------- - 14 files changed, 51 insertions(+), 33 deletions(-) - ---- a/fs/squashfs/block.c -+++ b/fs/squashfs/block.c -@@ -31,7 +31,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/cache.c -+++ b/fs/squashfs/cache.c -@@ -51,7 +51,6 @@ - #include - #include - #include --#include - #include - - #include "squashfs_fs.h" ---- a/fs/squashfs/dir.c -+++ b/fs/squashfs/dir.c -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/export.c -+++ b/fs/squashfs/export.c -@@ -39,7 +39,6 @@ - #include - #include - #include --#include - #include - - #include "squashfs_fs.h" ---- a/fs/squashfs/file.c -+++ b/fs/squashfs/file.c -@@ -47,7 +47,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/fragment.c -+++ b/fs/squashfs/fragment.c -@@ -36,7 +36,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/id.c -+++ b/fs/squashfs/id.c -@@ -34,7 +34,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/inode.c -+++ b/fs/squashfs/inode.c -@@ -40,7 +40,6 @@ - - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/namei.c -+++ b/fs/squashfs/namei.c -@@ -57,7 +57,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/squashfs.h -+++ b/fs/squashfs/squashfs.h -@@ -71,6 +71,8 @@ extern struct inode *squashfs_iget(struc - extern int squashfs_read_inode(struct inode *, long long); - - /* zlib_wrapper.c */ -+extern void *zlib_init(void); -+extern void zlib_free(void *); - extern int zlib_uncompress(struct squashfs_sb_info *, void **, - struct buffer_head **, int, int, int, int, int); - ---- a/fs/squashfs/squashfs_fs_sb.h -+++ b/fs/squashfs/squashfs_fs_sb.h -@@ -64,7 +64,7 @@ struct squashfs_sb_info { - struct mutex read_data_mutex; - struct mutex meta_index_mutex; - struct meta_index *meta_index; -- z_stream stream; -+ void *stream; - __le64 *inode_lookup_table; - u64 inode_table; - u64 directory_table; ---- 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 su - } - 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 = 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); -+ 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); -+ 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 su - squashfs_cache_delete(sbi->block_cache); - squashfs_cache_delete(sbi->fragment_cache); - squashfs_cache_delete(sbi->read_page); -+ 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; - } ---- a/fs/squashfs/symlink.c -+++ b/fs/squashfs/symlink.c -@@ -36,7 +36,6 @@ - #include - #include - #include --#include - - #include "squashfs_fs.h" - #include "squashfs_fs_sb.h" ---- a/fs/squashfs/zlib_wrapper.c -+++ b/fs/squashfs/zlib_wrapper.c -@@ -31,21 +31,51 @@ - #include "squashfs_fs_i.h" - #include "squashfs.h" - -+void *zlib_init() -+{ -+ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL); -+ if (stream == NULL) -+ goto failed; -+ stream->workspace = kmalloc(zlib_inflate_workspacesize(), -+ GFP_KERNEL); -+ if (stream->workspace == NULL) -+ goto failed; -+ -+ return stream; -+ -+failed: -+ ERROR("Failed to allocate zlib workspace\n"); -+ kfree(stream); -+ return NULL; -+} -+ -+ -+void zlib_free(void *strm) -+{ -+ z_stream *stream = strm; -+ -+ if (stream) -+ kfree(stream->workspace); -+ kfree(stream); -+} -+ -+ - int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer, - struct buffer_head **bh, int b, int offset, int length, int srclength, - int pages) - { - int zlib_err = 0, zlib_init = 0; - int avail, bytes, k = 0, page = 0; -+ z_stream *stream = msblk->stream; - - mutex_lock(&msblk->read_data_mutex); - -- msblk->stream.avail_out = 0; -- msblk->stream.avail_in = 0; -+ stream->avail_out = 0; -+ stream->avail_in = 0; - - bytes = length; - do { -- if (msblk->stream.avail_in == 0 && k < b) { -+ if (stream->avail_in == 0 && k < b) { - avail = min(bytes, msblk->devblksize - offset); - bytes -= avail; - wait_on_buffer(bh[k]); -@@ -58,18 +88,18 @@ int zlib_uncompress(struct squashfs_sb_i - continue; - } - -- msblk->stream.next_in = bh[k]->b_data + offset; -- msblk->stream.avail_in = avail; -+ stream->next_in = bh[k]->b_data + offset; -+ stream->avail_in = avail; - offset = 0; - } - -- if (msblk->stream.avail_out == 0 && page < pages) { -- msblk->stream.next_out = buffer[page++]; -- msblk->stream.avail_out = PAGE_CACHE_SIZE; -+ if (stream->avail_out == 0 && page < pages) { -+ stream->next_out = buffer[page++]; -+ stream->avail_out = PAGE_CACHE_SIZE; - } - - if (!zlib_init) { -- zlib_err = zlib_inflateInit(&msblk->stream); -+ zlib_err = zlib_inflateInit(stream); - if (zlib_err != Z_OK) { - ERROR("zlib_inflateInit returned unexpected " - "result 0x%x, srclength %d\n", -@@ -79,9 +109,9 @@ int zlib_uncompress(struct squashfs_sb_i - zlib_init = 1; - } - -- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH); -+ zlib_err = zlib_inflate(stream, Z_SYNC_FLUSH); - -- if (msblk->stream.avail_in == 0 && k < b) -+ if (stream->avail_in == 0 && k < b) - put_bh(bh[k++]); - } while (zlib_err == Z_OK); - -@@ -90,14 +120,14 @@ int zlib_uncompress(struct squashfs_sb_i - goto release_mutex; - } - -- zlib_err = zlib_inflateEnd(&msblk->stream); -+ zlib_err = zlib_inflateEnd(stream); - if (zlib_err != Z_OK) { - ERROR("zlib_inflate error, data probably corrupt\n"); - goto release_mutex; - } - - mutex_unlock(&msblk->read_data_mutex); -- return msblk->stream.total_out; -+ return stream->total_out; - - release_mutex: - mutex_unlock(&msblk->read_data_mutex);