2.2.9 hangs in truncate_inode_pages

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sun, 30 May 1999 18:44:12 +0100 (BST)


I've been chasing a hang in 2.2.9* and it comes down to truncate_inode_pages.

Now there are two things that have me wondering here and one cleanup item

1. wait_on_page uses schedule() and not the SCHED_YIELD stuff so
there is no guarantee another person locking the page gets run
if their lock isnt going to be cleared by tq_disk

2. __wait_on_page says you are supposed to own the page before waiting
on it (ie up page->count). I don't see where we do that. We even
go back to the start to allow for the pages on the inode changing
if we sleep but we don't up the count ourselves.

3. (minor) in truncate_inode_pages we do if(PageLocked(..))
wait_on_page. If we know the page is locked shouldn't we do
__wait_on_page()

Alan

-
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/