I wonder if the following scenario is possible:
CPU 0				CPU 1
add_to_page_cache()		truncate_list_pages()
spin_lock(&pagecache_lock);
__add_to_page_cache()
spin_unlock(&pagecache_lock);
==> network irq
    ...				remove_inode_page()
    ...
==> softirqs			__free_pages_ok()
    ...
    ...
	*** page now on free list ***
lru_cache_add(page);
	*** BOOM ***
regards,
Rik
-- DMCA, SSSCA, W3C? Who cares? http://thefreeworld.net/http://www.surriel.com/ http://distro.conectiva.com/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/