From: Vivek Goyal <vgoyal@redhat.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: overlayfs <linux-unionfs@vger.kernel.org>,
Amir Goldstein <amir73il@gmail.com>
Subject: Re: [PATCH v15 10/30] ovl: Modify ovl_lookup() and friends to lookup metacopy dentry
Date: Thu, 10 May 2018 09:17:53 -0400 [thread overview]
Message-ID: <20180510131753.GB2728@redhat.com> (raw)
In-Reply-To: <CAJfpegtizFNe3tm7reYMYGBsmD-dzZTHNsSGrb5BZ_gaeu2Sfw@mail.gmail.com>
On Thu, May 10, 2018 at 11:36:16AM +0200, Miklos Szeredi wrote:
> On Thu, May 10, 2018 at 11:19 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> > On Mon, May 7, 2018 at 7:40 PM, Vivek Goyal <vgoyal@redhat.com> wrote:
> >>
> >> + if (d.metacopy)
> >> + metacopy = true;
> >> + /*
> >> + * Do not store intermediate metacopy dentries in chain,
> >> + * except top most lower metacopy dentry
> >
> > I don't get it. We need the bottom most metacopy dentry, not the
> > topmost. Am I missing something?
>
> Okay, it's more complicated.
>
> 1) there is an upper metacopy dentry:
>
> - store origin (pointed to by ORIGIN or topmost lower dentry) in stack[0]
> - store data dentry (lowest in metacopy chain) in stack[1], unless
> it's the same as origin
>
> 2) there is no upper dentry, but a lower metacopy dentry
>
> - store metacopy dentry in stack[0]
> - store data dentry in stack[1]
>
> Does that make more sense?
Right. That's what I am doing. lower layers can be a metacopy chain
itself (with data dentry at the end). So lowerstack[0] stores topmost
metacopy dentry and lowerstack[1] stores bottom most data dentry.
If upper metacopy dentry is present, then lowerstack[0] will be ORIGIN
too (in the case of non-copied layers). Now I will relax the check and
will have to keep some state to figure out of lowerstack[0] is verified
ORIGIN or not.
>
> > We also need to check file type here, only regular file makes sense as
> > metacopy, so if it's something else, then get out with EIO.
>
> I meant file type of *data* inode. Type of metacopy inode is already
> checked by ovl_check_metacopy_xattr().
Ok.
Thanks
Vivek
next prev parent reply other threads:[~2018-05-10 13:17 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-07 17:40 [PATCH v15 00/30] overlayfs: Delayed copy up of data Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 01/30] ovl: Pass argument to ovl_get_inode() in a structure Vivek Goyal
2018-05-07 19:26 ` Amir Goldstein
2018-05-07 20:37 ` Vivek Goyal
2018-05-08 4:45 ` Amir Goldstein
2018-05-08 13:45 ` Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 02/30] ovl: Initialize ovl_inode->redirect in ovl_get_inode() Vivek Goyal
2018-05-08 13:56 ` Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 03/30] ovl: Move the copy up helpers to copy_up.c Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 04/30] ovl: Provide a mount option metacopy=on/off for metadata copyup Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 05/30] ovl: During copy up, first copy up metadata and then data Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 06/30] ovl: Copy up only metadata during copy up where it makes sense Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 07/30] ovl: Add helper ovl_already_copied_up() Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 08/30] ovl: A new xattr OVL_XATTR_METACOPY for file on upper Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 09/30] ovl: Use out_err instead of out_nomem Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 10/30] ovl: Modify ovl_lookup() and friends to lookup metacopy dentry Vivek Goyal
2018-05-07 19:14 ` Amir Goldstein
2018-05-10 9:19 ` Miklos Szeredi
2018-05-10 9:36 ` Miklos Szeredi
2018-05-10 9:52 ` Miklos Szeredi
2018-05-10 13:17 ` Vivek Goyal [this message]
2018-05-10 15:32 ` Vivek Goyal
2018-05-10 20:21 ` Miklos Szeredi
2018-05-10 13:14 ` Vivek Goyal
2018-05-10 14:43 ` Amir Goldstein
2018-05-10 19:42 ` Vivek Goyal
2018-05-10 19:39 ` Vivek Goyal
2018-05-10 20:13 ` Miklos Szeredi
2018-05-11 7:29 ` Miklos Szeredi
2018-05-11 7:52 ` Amir Goldstein
2018-05-11 8:13 ` Miklos Szeredi
2018-05-11 12:28 ` Vivek Goyal
2018-05-11 14:30 ` Vivek Goyal
2018-05-11 15:05 ` Amir Goldstein
2018-05-11 15:14 ` Vivek Goyal
2018-05-11 15:52 ` Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 11/30] ovl: Copy up meta inode data from lowest data inode Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 12/30] ovl: Add helper ovl_dentry_lowerdata() to get lower data dentry Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 13/30] ovl: Add an helper to get real " Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 14/30] ovl: Fix ovl_getattr() to get number of blocks from lower Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 15/30] ovl: Store lower data inode in ovl_inode Vivek Goyal
2018-05-07 18:59 ` Amir Goldstein
2018-05-08 13:47 ` Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 16/30] ovl: Add helper ovl_inode_real_data() Vivek Goyal
2018-05-07 18:18 ` Amir Goldstein
2018-05-07 17:40 ` [PATCH v15 17/30] ovl: Open file with data except for the case of fsync Vivek Goyal
2018-05-07 19:47 ` Amir Goldstein
2018-05-07 20:59 ` Vivek Goyal
2018-05-08 5:26 ` Amir Goldstein
2018-05-08 12:50 ` Vivek Goyal
2018-05-08 14:14 ` Amir Goldstein
2018-05-08 14:26 ` Vivek Goyal
2018-05-08 15:04 ` Amir Goldstein
2018-05-07 17:40 ` [PATCH v15 18/30] ovl: Do not expose metacopy only dentry from d_real() Vivek Goyal
2018-05-07 19:39 ` Amir Goldstein
2018-05-07 17:40 ` [PATCH v15 19/30] ovl: Move some dir related ovl_lookup_single() code in else block Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 20/30] ovl: Check redirects for metacopy files Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 21/30] ovl: Treat metacopy dentries as type OVL_PATH_MERGE Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 22/30] ovl: Add an inode flag OVL_CONST_INO Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 23/30] ovl: Do not set dentry type ORIGIN for broken hardlinks Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 24/30] ovl: Set redirect on metacopy files upon rename Vivek Goyal
2018-05-07 18:21 ` Amir Goldstein
2018-05-07 17:40 ` [PATCH v15 25/30] ovl: Set redirect on upper inode when it is linked Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 26/30] ovl: Check redirect on index as well Vivek Goyal
2018-05-07 18:43 ` Amir Goldstein
2018-05-08 12:58 ` Vivek Goyal
2018-05-07 17:40 ` [PATCH v15 27/30] ovl: Disbale metacopy for MAP_SHARED mmap() Vivek Goyal
2018-05-07 17:41 ` [PATCH v15 28/30] ovl: Do not do metadata only copy-up for truncate operation Vivek Goyal
2018-05-07 17:41 ` [PATCH v15 29/30] ovl: Do not do metacopy only for ioctl modifying file attr Vivek Goyal
2018-05-07 17:41 ` [PATCH v15 30/30] ovl: Enable metadata only feature Vivek Goyal
2018-05-07 18:10 ` [PATCH v15 00/30] overlayfs: Delayed copy up of data Amir Goldstein
2018-05-07 18:24 ` Vivek Goyal
2018-05-07 18:33 ` Amir Goldstein
2018-05-07 19:14 ` Vivek Goyal
2018-05-08 13:42 ` Vivek Goyal
2018-05-08 14:16 ` Amir Goldstein
2018-05-23 20:00 ` 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=20180510131753.GB2728@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