Re: [GIT PULL] Squashfs fixes for 2.6.29?

From: Stefan Lippers-Hollmann
Date: Tue Mar 10 2009 - 17:25:44 EST


Hi

On Dienstag, 10. März 2009, Geert Uytterhoeven wrote:
> On Tue, 10 Mar 2009, Phillip Lougher wrote:
> > Stefan Lippers-Hollmann wrote:
> > > This patch seems to break squashfs for me on i386 and amd64.
> > > Test environment is a squashed filesystem image (live CD image, but also
> > > tested manually with a loop mounted iso9660 and loop mounted squashfs;
> > > kernel 2.6.29-rc7-git2). The squashfs image has been created with
> > > squashfs-tools CVS[1] as of today (latest commit 2009-03-03).
> > >
> >
> > Can you send me a filesystem (or link to one) which exhibits this? Zlib is
> > obviously showing unexpected behaviour...
>
> I see the same thing here. I'll send you a test file system by private email.
>
> The patch below fixes it. It seems zlib sometimes does need an additional
> loop ;-)
>
> Note that I expect it may now loop forever in case of file system corruption.

This patch seems to work for me, no further errors while copying files and
no syslog messages.

Regards
Stefan Lippers-Hollmann
--

> Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@xxxxxxxxxxx>
>
> diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
> index 321728f..46358dd 100644
> --- a/fs/squashfs/block.c
> +++ b/fs/squashfs/block.c
> @@ -184,15 +184,7 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
> offset = 0;
> }
>
> - if (msblk->stream.avail_out == 0) {
> - if (page == pages) {
> - ERROR("zlib_inflate tried to "
> - "decompress too much data, "
> - "expected %d bytes. Zlib "
> - "data probably corrupt\n",
> - srclength);
> - goto release_mutex;
> - }
> + if (msblk->stream.avail_out == 0 && page < pages) {
> msblk->stream.next_out = buffer[page++];
> msblk->stream.avail_out = PAGE_CACHE_SIZE;
> }
>
> With kind regards,
>
> Geert Uytterhoeven
> Software Architect
>
> Sony Techsoft Centre Europe
> The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium
>
> Phone: +32 (0)2 700 8453
> Fax: +32 (0)2 700 8622
> E-mail: Geert.Uytterhoeven@xxxxxxxxxxx
> Internet: http://www.sony-europe.com/
>
> A division of Sony Europe (Belgium) N.V.
> VAT BE 0413.825.160 · RPR Brussels
> Fortis · BIC GEBABEBB · IBAN BE41293037680010

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/