On Thu, Sep 17, 2020 at 12:27 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > Ah, I see what you mean. Hold the i_mmap_rwsem for write across, > basically, the entirety of truncate_inode_pages_range(). I really suspect that will be entirely unacceptable for latency reasons, but who knows. In practice, nobody actually truncates a file _while_ it's mapped, that's just crazy talk. But almost every time I go "nobody actually does this", I tend to be surprised by just how crazy some loads are, and it turns out that _somebody_ does it, and has a really good reason for doing odd things, and has been doing it for years because it worked really well and solved some odd problem. So the "hold it for the entirety of truncate_inode_pages_range()" thing seems to be a really simple approach, and nice and clean, but it makes me go "*somebody* is going to do bad things and complain about page fault latencies". Linus