On Wed, 1 Nov 2006 12:06:15 -0800 , Trevor Hamm <Trevor_Hamm@pmc-sierra.com>
wrote:
> My investigation shows this behaviour was introduced between
> 2.6.17.10 and 2.6.17.12 (2.6.17.11 failed to build, so I didn't test
> that version). In fact, the patch below, applied against 2.6.17.10,
> is sufficient to cause the boot problem. The bulk of this patch
> includes a fix from Aug. 31, 2006 for dcache aliasing on fork. If I
> exclude the dcache aliasing fix from this patch, the boot problem
> apparently disappears.
>
> Some more interesting details:
> - We're using a squashfs root filesystem in RAM (squashfs 3.1-r2).
> We have not been able to reproduce with cramfs.
If dcache aliasing patch caused this problem, it might be due to
missing flush_dcache_page() in squashfs.
With a quick look at squashfs/inode.c, it seems flush_dcache_page() is
needed at end of squashfs_symlink_readpage() as other functions.
Could you try it?
skip_read:
memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
kunmap(page);
flush_dcache_page(page); /* THIS */
SetPageUptodate(page);
unlock_page(page);
---
Atsushi Nemoto
|