[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[miltonm@realtime.net: lock_kiobuf page locking]
- To: linux-mm@kvack.org
- Subject: [miltonm@realtime.net: lock_kiobuf page locking]
- From: William Lee Irwin III <wli@holomorphy.com>
- Date: Sat, 11 May 2002 09:11:05 -0700
- Fake-Sender: owner-linux-mm@kvack.org
- Mail-Followup-To: William Lee Irwin III <wli@holomorphy.com>,linux-mm@kvack.org
- Organization: The Domain of Holomorphy
- Original-Recipient: rfc822;linux-mm-archive@humbolt.geo.uu.nl
- Sender: Rik van Riel <riel@nl.linux.org>
- User-Agent: Mutt/1.3.25i
This looks good to me; thought I'd toss it out here for review.
Cheers,
Bill
----- Forwarded message from "Milton D. Miller II" <miltonm@realtime.net> -----
Envelope-to: wli@holomorphy.com
Delivery-date: Mon, 06 May 2002 21:44:36 -0700
Date: Mon, 6 May 2002 23:45:47 -0500 (CDT)
From: "Milton D. Miller II" <miltonm@realtime.net>
To: wli@holomorphy.com
Subject: lock_kiobuf page locking
Just noticed this with the wait_page to wait_page_locked diff ...
===== memory.c 1.61 vs edited =====
--- 1.61/mm/memory.c Sat May 4 18:07:03 2002
+++ edited/memory.c Mon May 6 18:18:19 2002
@@ -693,8 +693,8 @@
{
struct kiobuf *iobuf;
int i, j;
- struct page *page, **ppage;
- int doublepage = 0;
+ struct page *page, **ppage, *dpage = NULL;
+ int doublepage;
int repeat = 0;
repeat:
@@ -747,9 +747,14 @@
* but if it happens more than once, chances
* are we have a double-mapped page.
*/
- if (++doublepage >= 3)
- return -EINVAL;
+ if (dpage != page) {
+ dpage = page;
+ doublepage = 0;
+ } else {
+ if (++doublepage >= 3)
+ return -EINVAL;
+ } else {
/* Try again... */
wait_on_page_locked(page);
}
----- End forwarded message -----
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/