[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFznOnFvOPghB2RWqx-H6n0Fc8zGy8c24zU-aYPVscvufQ@mail.gmail.com>
Date: Fri, 15 Sep 2017 11:35:25 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Miklos Szeredi <miklos@...redi.hu>
Cc: Al Viro <viro@...iv.linux.org.uk>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
"linux-unionfs@...r.kernel.org" <linux-unionfs@...r.kernel.org>
Subject: Re: [GIT PULL] overlayfs update for 4.14
On Fri, Sep 15, 2017 at 12:32 AM, Miklos Szeredi <miklos@...redi.hu> 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
Powered by blists - more mailing lists