linux-unionfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: Amir Goldstein <amir73il@gmail.com>
Cc: overlayfs <linux-unionfs@vger.kernel.org>,
	Miklos Szeredi <miklos@szeredi.hu>
Subject: Re: [PATCH v7 04/14] ovl: Provide a mount option metacopy=on/off for metadata copyup
Date: Fri, 17 Nov 2017 13:31:05 -0500	[thread overview]
Message-ID: <20171117183105.GD15566@redhat.com> (raw)
In-Reply-To: <CAOQ4uxgAPU99AzaYHV=ispJKgH=WdAdVP7YKW=o0CU=SJnUCKA@mail.gmail.com>

On Fri, Nov 17, 2017 at 06:32:52PM +0200, Amir Goldstein wrote:
> On Fri, Nov 17, 2017 at 6:18 PM, Vivek Goyal <vgoyal@redhat.com> wrote:
> > On Fri, Nov 17, 2017 at 01:23:58PM +0200, Amir Goldstein wrote:
> >
> > [..]
> >> > @@ -1164,6 +1187,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
> >> >
> >> >         ofs->config.redirect_dir = ovl_redirect_dir_def;
> >> >         ofs->config.index = ovl_index_def;
> >> > +       ofs->config.metacopy = ovl_metacopy_def;
> >> >         err = ovl_parse_opt((char *) data, &ofs->config);
> >> >         if (err)
> >> >                 goto out_err;
> >> > @@ -1209,6 +1233,16 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
> >> >         else if (ofs->upper_mnt->mnt_sb != ofs->same_sb)
> >> >                 ofs->same_sb = NULL;
> >> >
> >> > +       if (!(ovl_force_readonly(ofs)) && ofs->config.metacopy) {
> >> > +               /* Verify lower root is upper root origin */
> >> > +               err = ovl_verify_origin(upperpath.dentry,
> >> > +                                       oe->lowerstack[0].dentry, false, true);
> >> > +               if (err) {
> >> > +                       pr_err("overlayfs: failed to verify upper root origin\n");
> >> > +                        goto out_free_oe;
> >> > +               }
> >> > +       }
> >> > +
> >> >
> >>
> >> Fs can have upper but no workdir and you still need to verify lower
> >> If metacopy is enabled
> >
> > Hmm..., trying to understand this. This probably is more involved.
> >
> > So first use case is that if metacopy is being enabled, verify lower
> > root is upper root origin. (Even if it is read-only fs).
> >
> > if (ofs->upper_mnt && ofs->config.metacopy)
> >         ovl_verify_origin().
> 
> Yes, this is needed in case workdir/work dir creation fails and fs is mounted
> read-only. You should not allow it with metacopy on unverified lower.
> 
> >
> > But this does not cover the case of same fs being remounted with
> > metacopy=off. In that case we will not do metacopy only copy ups but
> > existing metacopy inodes will still require that lower does not change.
> >
> > Will it make sense to set OVL_METACOPY xattr on upper when metacopy=on
> > is done first time on mount. And later in subsequent mounts, if METACOPY
> > is set on upper, make sure to verify origin and make sure lower supports
> > file handles etc.
> >
> 
> This is an related to what we discussed at length on the ovl-features
> patches.
> 
> Yes, we SHOULD mark that the metacopy feature was enabled, at least
> on first meta_copy_up().
> 
> No, we should not do that by marking root upper with metacopy xattr.
> this would be very confusing and inconsistent.
> We can either set trusted.overlay.features on upper root as Miklos suggested
> or incompat_feature/ directory as I suggested, but we need to decide on
> a consistent scheme we can use for other features as well.

Agreed. We need a generic sheme to mark what features have been enabled
and what are incomapt features and which ones are rocompat etc and then
all current and future overlayfs features can make use of that generic
infrastructure.

> 
> I guess metacopy must have this infrastructure in place, because as you
> correctly noted, we should not mount an overlay with metacopied inodes
> without verifying lower and file handle support.

Ok, so for now, I will just verify lower when metacopy is enabled. For
other case, will wait for something generic to be merged upstream.

Vivek

  reply	other threads:[~2017-11-17 18:31 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-16 22:03 [RFC PATCH v7 00/14] overlayfs: Delayed copy up of data Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 01/14] ovl: disable redirect_dir and index when no xattr support Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 02/14] ovl: ovl_check_setxattr() get rid of redundant -EOPNOTSUPP check Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 03/14] ovl: Create origin xattr on copy up for all files Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 04/14] ovl: Provide a mount option metacopy=on/off for metadata copyup Vivek Goyal
2017-11-17 11:23   ` Amir Goldstein
2017-11-17 16:18     ` Vivek Goyal
2017-11-17 16:32       ` Amir Goldstein
2017-11-17 18:31         ` Vivek Goyal [this message]
2017-11-16 22:03 ` [PATCH v7 05/14] ovl: During copy up, first copy up metadata and then data Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 06/14] ovl: Move couple of copy up functions in copy_up.c Vivek Goyal
2017-11-17  9:06   ` Amir Goldstein
2017-11-17 15:40     ` Vivek Goyal
2017-11-17 16:09       ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 07/14] ovl: Copy up only metadata during copy up where it makes sense Vivek Goyal
2017-11-17 15:44   ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 08/14] ovl: Add helper ovl_already_copied_up() Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 09/14] ovl: A new xattr OVL_XATTR_METACOPY for file on upper Vivek Goyal
2017-11-17 16:07   ` Amir Goldstein
2017-11-17 20:34     ` Vivek Goyal
2017-11-18  7:06       ` Amir Goldstein
2017-11-20 14:34         ` Vivek Goyal
2017-11-20 15:18           ` Amir Goldstein
2017-11-20 15:28             ` Vivek Goyal
2017-11-16 22:03 ` [PATCH v7 10/14] ovl: Fix ovl_getattr() to get number of blocks from lower Vivek Goyal
2017-11-17  9:17   ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 11/14] ovl: Set OVL_UPPERDATA flag during ovl_lookup() Vivek Goyal
2017-11-17  9:22   ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 12/14] ovl: Do not expose metacopy only upper dentry from d_real() Vivek Goyal
2017-11-17 16:07   ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 13/14] ovl: Fix encryption/compression status of a metacopy only file Vivek Goyal
2017-11-17  9:15   ` Amir Goldstein
2017-11-16 22:03 ` [PATCH v7 14/14] ovl: Enable metadata only feature Vivek Goyal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171117183105.GD15566@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=amir73il@gmail.com \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).