On Fri, Sep 15, 2017 at 12:32 AM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > Fine. Here's a patch reverting the new flags and adding O_UPPER. Thanks, this patch looks fine to me, but now with the other discussion I think I'll leave the d_real() thing alone and see if Al has more comments about your other approach. Because it _would_ be even more lovely if we could just get rid of it entirely, and do all of this internally in ovlfs itself. > And we still have that issue with an fd opened for read-only and then > one opened for write, resulting in a copy-up, modification, and the > read-only fd still seeing the old data (union mounts had the same > issue, BTW). So we need more hacks or some way to have a shared page > cache that's breakable on copy up, which does not look trivial at all. Ugh, no, that's *very* non-trivial. I can see us doing magical things with the inode->i_mapping being an ovlfs-private mapping, and then sharing the actual physical pages with the mapping of the lower filesystem. So that way, the actual file data would never point directly at the lower filesystem. But equally obviously, that would *only* work when the lower filesystem is never modified directly. There may be other, even worse, issues with page sharing across mappings. So it might be a completely broken model, I haven't thought much about it. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html