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

From: Trond Myklebust
Date: Mon Nov 21 2005 - 19:18:44 EST


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