Re: BUG 2.3.23-pre5 locks up

Alexander Viro (viro@math.psu.edu)
Thu, 21 Oct 1999 16:16:56 -0400 (EDT)


On Thu, 21 Oct 1999, Jeff Garzik wrote:

> Alexander Viro wrote:
> > You've got more core - I was testing the sucker with 8Mb. Fit hits the
> > shan as soon as it tries to swap. It looks like add_page_to_inode_queue
> > is called with inode->i_pages.next==NULL.
>
> FWIW I never ever hit swap, and it still locks up on me

Looks like you've got a different animal. What I had was the breakage in
add_to_swap_cache() - it tired to add page into the inode queue of phoney
inode. Which didn't have initialized i_pages. Back when it was a simple
list we managed to get out with that, but now it's a cyclic list and
{NULL, NULL} doesn't work. Could you try the following:
--- mm/filemap.c.old Tue Oct 19 17:02:12 1999
+++ mm/filemap.c Thu Oct 21 16:09:20 1999
@@ -539,6 +539,8 @@
page = page_cache_alloc();
if (!page)
return;
+ if (page->buffers)
+ PAGE_BUG(page);

if (!add_to_page_cache_unique(page, inode, offset, hash)) {
inode->i_op->readpage(file, page);

and see if it will barf in a different place? From the stack trace you've
posted it looks like somewhere along the way we manage to get
->buffers!=NULL on fresh page...

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