The following is a bugfix against memory.c:lock_kiovec,
At line 649 we have:
if (!PageLocked(page)) {
which assumes page is the page we failed to lock, and if it is unlocked after calling
the unlock_kiovec we have a page which has been mapped twice, but page has been modified
and it doesn't contain the expected value.
Patch is against 2.4.8-pre1, Comments are welcome.
----- memory.c.old Sun Jul 29 12:38:19 2001 +++ memory.c Sun Jul 29 12:39:04 2001 @@ -619,9 +619,10 @@ if (TryLockPage(page)) { while (j--) { - page = *(--ppage); - if (page) - UnlockPage(page); + struct page *tmp; + tmp = *(--ppage); + if (tmp) + UnlockPage(tmp); } goto retry; } - 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/
This archive was generated by hypermail 2b29 : Tue Jul 31 2001 - 21:00:40 EST