Re: infinite loop? with mmap, nfs, pwrite, O_DIRECT

From: Trond Myklebust
Date: Mon Nov 21 2005 - 19:25:10 EST


On Mon, 2005-11-21 at 19:18 -0500, Trond Myklebust wrote:
> On Mon, 2005-11-21 at 16:09 -0800, Andrew Morton wrote:
> > Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote:
> > >
> > > The only difference I can see between the two paths is the call to
> > > unmap_mapping_range(). What effect would that have?
> >
> > It shoots down any mapped pagecache over the affected file region. Because
> > the direct-io write is about to make that pagecache out-of-date. If the
> > application tries to use that data again it'll get a major fault and will
> > re-read the file contents.
>
> I assume then, that this couldn't be the cause of the
> invalidate_inode_pages() failing to complete? Unless there is some
^^^^^^^^^^^^^^^^^^^^^^^^ invalidate_inode_pages2(), sorry....

> method to prevent applications from faulting in the page while we're
> inside generic_file_direct_IO(), then the same race would be able to
> occur there.

Cheers,
Trond

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