As note on the PG_locked flag.
That simply indicates that there is I/O inprocess on the page and you
can use wait_on_page to wait for it to complete.
This does not prevent pages from being mapped.
For read operations we are carefull in preventing this from happening,
because all of the data hasn't been read in yet.
But that is the combination of !PageUptodate(page) && PageLocked(page).
If PageUptodate(page) is true, especially with mmaped memory it is totally
possible to have the page mapped out while it is locked.
If we count on PageLocked from keeping a page from being mapped in while
it is being written out, I think that is a part of the current NFS design
that needs to be redesigned.
I'm not prepared quite yet, for a large discussion on the code as I haven't
finished testing my prototypes. Once that is done I'll write up some documentation
and start pushing for integration of generic dirty page handling for 2.3
I guess I need to read the NFS code as well to see how it is currently handling flushing
to make sure I don't miss an important case.
Eric
-
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/