Re: 2.4.0-test10-pre3:Oops in mm/filemap.c:filemap_write_pa

From: Trond Myklebust (trond.myklebust@fys.uio.no)
Date: Thu Oct 19 2000 - 19:17:14 EST


>>>>> " " == Linus Torvalds <torvalds@transmeta.com> writes:

> How about adding a test in invalidate_inode_pages() like

> /* We cannot invalidate a locked page */ if
> (TryLockPage(page))
> continue;

> + /* We cannot invalidate a page that is in use */
> + if (page_count(page) != 1) {
> + UnlockPage(page);
> + continue;
> + }
> +
> __lru_cache_del(page); __remove_inode_page(page);

> Because otherwise we might end up invalidating pages that might
> have pending write-back etc (although I think the NFS logic
> tries to avoid invalidating when there's pending activity).

You may remember that I've been fighting a rearguard action against
this for some time.

Under NFS the problem is that pages can (and *should*) be invalidated
despite there being pending write backs. The server can trigger the
need for a cache invalidation at any time.
The existence of file locks that aren't page aligned, as well as
partial page writeback ensure that we cannot make the equivalence
   page has pending write == page is correct.

Cheers,
  Trond
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 23 2000 - 21:00:16 EST