From 2f38cfe4b578a4f84f5fcd4be6046bf16fc5b50f Mon Sep 17 00:00:00 2001 From: Phillip Lougher Date: Tue, 25 Jan 2011 15:07:34 -0800 Subject: [PATCH] --- yaml --- r: 232419 b: refs/heads/master c: 3689456b4bd36027022b3215eb2acba51cd0e6b5 h: refs/heads/master i: 232417: 35b381ffc97550fecdb2fbbae4775b5fb348b990 232415: c64e2623f1a632b0b93dd5c08094100ae1b08411 v: v3 --- [refs] | 2 +- trunk/fs/squashfs/block.c | 8 ++++++++ trunk/fs/squashfs/xz_wrapper.c | 6 ------ trunk/fs/squashfs/zlib_wrapper.c | 6 ------ 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 4cd02d3c79f6..e2c1375e9f67 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac15ee691fe84cb46cbd2497ddcb10e246f7ee47 +refs/heads/master: 3689456b4bd36027022b3215eb2acba51cd0e6b5 diff --git a/trunk/fs/squashfs/block.c b/trunk/fs/squashfs/block.c index 2fb2882f0fa7..8ab48bc2fa7d 100644 --- a/trunk/fs/squashfs/block.c +++ b/trunk/fs/squashfs/block.c @@ -63,6 +63,14 @@ static struct buffer_head *get_block_length(struct super_block *sb, *length = (unsigned char) bh->b_data[*offset] | (unsigned char) bh->b_data[*offset + 1] << 8; *offset += 2; + + if (*offset == msblk->devblksize) { + put_bh(bh); + bh = sb_bread(sb, ++(*cur_index)); + if (bh == NULL) + return NULL; + *offset = 0; + } } return bh; diff --git a/trunk/fs/squashfs/xz_wrapper.c b/trunk/fs/squashfs/xz_wrapper.c index 856756ca5ee4..c4eb40018256 100644 --- a/trunk/fs/squashfs/xz_wrapper.c +++ b/trunk/fs/squashfs/xz_wrapper.c @@ -95,12 +95,6 @@ static int squashfs_xz_uncompress(struct squashfs_sb_info *msblk, void **buffer, if (!buffer_uptodate(bh[k])) goto release_mutex; - if (avail == 0) { - offset = 0; - put_bh(bh[k++]); - continue; - } - stream->buf.in = bh[k]->b_data + offset; stream->buf.in_size = avail; stream->buf.in_pos = 0; diff --git a/trunk/fs/squashfs/zlib_wrapper.c b/trunk/fs/squashfs/zlib_wrapper.c index 818a5e063faf..4661ae2b1cec 100644 --- a/trunk/fs/squashfs/zlib_wrapper.c +++ b/trunk/fs/squashfs/zlib_wrapper.c @@ -82,12 +82,6 @@ static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer, if (!buffer_uptodate(bh[k])) goto release_mutex; - if (avail == 0) { - offset = 0; - put_bh(bh[k++]); - continue; - } - stream->next_in = bh[k]->b_data + offset; stream->avail_in = avail; offset = 0;