Re: [PATCH v7 2/8] iov_iter: Add a function to extract a page list from an iterator

From: David Howells
Date: Mon Jan 23 2023 - 07:01:46 EST


David Howells <dhowells@xxxxxxxxxx> wrote:

> > How does this work align with the goal of no longer using FOLL_GET for
> > O_DIRECT? We should get rid of any FOLL_GET usage for accessing page content.
>
> Would that run the risk of changes being made by the child being visible to
> the a DIO write if the parent changes the buffer first?
>
>
> PARENT CHILD
> ====== =====
> start-DIO-write
> fork() = pid fork() = 0
> alter-buffer
> CoW happens
> page copied original page retained
> alter-buffer
> <DMA-happens>

Ah, I think I might have got the wrong end of the stick. A pinned page is
*always* copied on fork() if I understand copy_present_pte() correctly.

David