Re: [PATCH] squashfs broken when pageszie > blocksize

From: Geert Uytterhoeven
Date: Fri Apr 17 2009 - 09:20:28 EST


On Mon, 13 Apr 2009, Phillip Lougher wrote:
> Doug Chapman wrote:
> > Squashfs is broken on any system where the pageszie is larger than either
> > the block size of the squashfs image or larger than the metadata size
> > (8192).
> > This is easily fixed by ensuring cache->pages is always > 0.
> >
> > Signed-off-by: Doug Chapman <doug.chapman@xxxxxx>
> > Cc: Phillip Lougher <phillip@xxxxxxxxxxxxxxxxxxx>
>
> Good catch. BTW what is the page size on ia64?

A quick grep on PAGE_{SIZE,SHIFT} in asm/page.h shows:

ia64, mips, sh: 4/8/16/64 KiB
parisc: 4/16/64 KiB
alpha, cris: 8 KiB
powerpc: 4/16/64/256 KiB

> For completeness there should also be a mount time check that
> the block size used in the Squashfs filesystem is at least as
> large as the pagesize. This doesn't matter for metadata
> (size 8192), but does matter for data blocks, because Squashfs
> read_page doesn't handle block_size < pagesize.
>
> Squashfs read_page used to handle block_size < pagesize but I
> removed that code when I removed filesystem support for block_sizes
> < 4K. If ia64 users (or any other architecture with larger than
> 4K pagesizes) want to use Squashfs filesystems with blocksizes less
> than their pagesize, then I can put that code back in.

So I think it's a good idea to resurrect that code...

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/