Re: [GIT PULL] afs: Fixes

From: Linus Torvalds
Date: Sat Nov 25 2017 - 13:05:24 EST


On Fri, Nov 24, 2017 at 4:22 AM, David Howells <dhowells@xxxxxxxxxx> wrote:
>
> (2) Don't write to a page that's being written out, but wait for it to
> complete.

So I see in the commit message why afs needs to do this, but it's
worth pointing out that it's

(a) impossible to avoid the "inconsistent data" case for writable mmap'ed pages

(b) can cause some really nasty latency issues

So the "page->private" issue does mean that write-vs-writeback clearly
needs that serialization (and that's not an issue for the mapped page
being changed at the same time), but in general filesystem people
should be aware that data under writeback may still be further dirtied
while the writeback is active (and the page marked dirty again). It
can obviously screw with things like checksums etc, and make for
temporarily inconsistent state if the filesystem does those kinds of
things.

Linus