Re: Linux-2.3.x: new page locking semantics must break NFS.

Stephen C. Tweedie (sct@redhat.com)
Fri, 15 Oct 1999 12:55:19 +0100 (BST)


Hi,

On 10 Oct 1999 16:49:51 +0200, Trond Myklebust
<trond.myklebust@fys.uio.no> said:

> I've been spending the past week working on NFS for linux-2.3.x, and
> have finally gotten round to looking at the new page locking
> semantics.

> It seems to me that the decision to allow readaheads to be performed
> without the page lock being held must break the NFS client, since it
> uses the page lock in order to serialize the actual page IO.

Hmm? Look at the page_cache_read() code more closely:
add_to_page_cache_unique() calls __add_to_page_cache, which sets up the
new page to be locked.

The locking is not quite so visible now, but it is still there. Indeed,
the locking is now done at the lower level precisely so that we can be
100% sure that a page which has been newly added to the page cache and
which does not yet have valid contents is guaranteed to be both locked
and !uptodate, so that nobody will ever look at the contents before they
have been initialised.

--Stephen

-
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/