--- linux-2.4.10-pre12/mm/vmscan.c Wed Sep 19 20:47:21 2001
+++ linux-akpm/mm/vmscan.c Wed Sep 19 22:49:48 2001
@@ -435,15 +435,20 @@ static int shrink_cache(struct list_head
if (try_to_free_buffers(page, gfp_mask)) {
if (!page->mapping) {
- UnlockPage(page);
-
/*
* Account we successfully freed a page
* of buffer cache.
*/
atomic_dec(&buffermem_pages);
+ /*
+ * We must not allow an anon page
+ * with no buffers to be visible on
+ * the LRU, so we unlock the page after
+ * taking the lru lock
+ */
spin_lock(&pagemap_lru_lock);
+ UnlockPage(page);
__lru_cache_del(page);
/* effectively free the page here */
With this patch applied I've had three total system lockups with
the usual workload. No diagnostics, no interrupts, NMI watchdog
doesn't catch it. Nice. This is not related to networking; I
wasn't able to do much network stress testing because the
darn APIC bug kept biting me. Grumble.
I'll try -pre9.
-
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/