All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: overlayfs <linux-unionfs@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Al Viro <viro@zeniv.linux.org.uk>, Eryu Guan <eguan@redhat.com>
Subject: Re: [PATCH v2 03/17] ovl: decode pure upper file handles
Date: Wed, 24 Jan 2018 13:04:40 +0200	[thread overview]
Message-ID: <CAOQ4uxh-fjfmKH4oQDNYoi5GYaOFy+QmAb7bsV7urRRABTtjPw@mail.gmail.com> (raw)
In-Reply-To: <CAJfpegu2WyWFos=ie-T5XRBvZ+=FT8g5T-HsqXSgLS6jxsfYgg@mail.gmail.com>

On Wed, Jan 24, 2018 at 12:34 PM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> On Fri, Jan 19, 2018 at 9:10 PM, Amir Goldstein <amir73il@gmail.com> wrote:
>> On Fri, Jan 19, 2018 at 1:07 PM, Amir Goldstein <amir73il@gmail.com> wrote:
>>> On Fri, Jan 19, 2018 at 12:39 PM, Miklos Szeredi <miklos@szeredi.hu> wrote:
>>>> On Fri, Jan 19, 2018 at 02:23:35AM +0200, Amir Goldstein wrote:
>>>>> > How is this for an option?
>>>> [...]
>>>>> > +struct dentry *d_obtain_alias_fsdata(struct inode *inode, void **fsdata)
>>>>> > +{
>>>>> > +       return __d_obtain_alias(inode, 1, fsdata);
>>>>> >  }
>>>>> >  EXPORT_SYMBOL(d_obtain_alias);
>>>>
>>>> It would work, but I like this interface better:
>>>>
>>>> +extern struct dentry * d_alloc_anon(struct super_block *);
>>>> +extern struct dentry * d_instantiate_anon(struct dentry *, struct inode *);
>>>>
>>>
>>> OK. Thanks for the patch!
>>>
>>
>> Added your dcache patch to the series and reworked my patches
>> to use the new helpers.
>>
>> Tested result is pushed to:
>> https://github.com/amir73il/linux/commits/ovl-nfs-export-v3
>>
>> Prep patches changes since v2:
>> - Rebased over fix patch "hash all directory inodes for fsnotify"
>> - Rename mount/config option from "verify" to "nfs_export"
>> - Force r/o mount when index dir creation fails
>> - Allow enabling "nfs_export" for non-upper mount
>> - Require "redirect_dir=nofollow" for non-upper mount
>> - Rename dir index entries xattr from ".origin" to ".upper"
>> - Re-factor ovl_{get|set|verify}_origin() helpers
>> - Simplify test for temp index name (starts with #)
>> - Abandon ovl_dentry_is_renamed() test for lower st_ino
>> - Document overhead on mount with full index
>> - Document change of behavior when verifying lower origin
>> - Added patch to make room in ovl_entry struct
>>
>> NFS export changes since v2:
>> - Fix exportfs ops for r/o overlay with no upperdir
>> - Document reason for copy up directory on encode
>> - Take care of racing with rename while connecting dir
>> - Explain the reasons for choosing the 'connected' dir approach
>> - Do not add dentry without ovl_entry to dcache
>>
>> Optimizations TODO:
>> - Copy up on encode only when lower ancestor is below middle layer redirect
>> - Hash inode by fh to avoid origin decode of whiteout fh
>>
>> As far as I know, the series is now functionally correct and all comments
>> so far addressed. The remaining optimizations will be done on top of this
>> series.
>
> Pushed to overlayfs-next with one fix (do not warn about falling back
> to nfs_export=off if nfs_export is already off).

Good fix.
That warning was a late addition to V3 after allowing nfs_export without
index for on-upper r/o mount.

>
> That spurious warning makes me wonder: how much of the option matrix is tested?
>

Good question... (adding Eryu in CC)

I know Eryu tested with default kernel configuration, because one
of my tests found a bug with NFS export and redirect_dir=off.
(I fixed the specific test to require redirect_dir)

I have posted xfstests for overlay NFS export support with samefs
and non-samefs configuration and for non-samefs, there are two
lower layers not on the same fs. I also have posted a test for non-upper
overlay with two lower layers on samefs and non-samefs.

One of the overlay xfstests explicitly turns off index with index=off,
(overlay/036), so we have coverage for falling back to nfs_export=off
when NFS export is enabled by default (as it usually is in my setup).

There is an overlay xfstest with multiple lower layers and no-upper
and that test shows the warning about falling back to nfs_export=off
due to redirect_dir=nofollow requirement (with default kernel configuration).

I did not specifically test underlying fs with no xattr support and no
file handle support, though the latter was already tested for index
with squashfs (no uuid) and the nfs_export=off code is piggy backed
in the same place as index=off.

Thanks,
Amir.

  reply	other threads:[~2018-01-24 11:04 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-04 17:20 [PATCH v2 00/17] Overlayfs NFS export support Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 01/17] ovl: document NFS export Amir Goldstein
2018-01-11 16:06   ` Miklos Szeredi
2018-01-11 16:26     ` Amir Goldstein
2018-01-12 15:43       ` Miklos Szeredi
2018-01-12 15:49         ` Miklos Szeredi
2018-01-12 18:50           ` Amir Goldstein
2018-01-13  8:54           ` Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 02/17] ovl: encode pure upper file handles Amir Goldstein
2018-01-18 10:31   ` Miklos Szeredi
2018-01-04 17:20 ` [PATCH v2 03/17] ovl: decode " Amir Goldstein
2018-01-18 14:09   ` Miklos Szeredi
2018-01-18 14:34     ` Amir Goldstein
2018-01-18 14:39       ` Miklos Szeredi
2018-01-18 19:49         ` Amir Goldstein
2018-01-18 20:10           ` Miklos Szeredi
2018-01-18 20:35             ` Amir Goldstein
2018-01-18 22:57               ` Amir Goldstein
2018-01-19  0:23                 ` Amir Goldstein
2018-01-19 10:39                   ` Miklos Szeredi
2018-01-19 11:07                     ` Amir Goldstein
2018-01-19 20:10                       ` Amir Goldstein
2018-01-24 10:34                         ` Miklos Szeredi
2018-01-24 11:04                           ` Amir Goldstein [this message]
2018-01-24 11:18                             ` Amir Goldstein
2018-01-24 11:55                               ` Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 04/17] ovl: decode connected upper dir " Amir Goldstein
2018-01-05 12:33   ` Amir Goldstein
2018-01-05 15:18     ` J . Bruce Fields
2018-01-05 15:34       ` Amir Goldstein
2018-01-15 11:41     ` Miklos Szeredi
2018-01-15 11:33   ` Miklos Szeredi
2018-01-15 12:20     ` Amir Goldstein
2018-01-15 14:56       ` Miklos Szeredi
2018-01-17 11:18         ` Amir Goldstein
2018-01-17 12:20           ` Amir Goldstein
2018-01-17 13:29             ` Amir Goldstein
2018-01-17 15:42           ` Miklos Szeredi
2018-01-17 16:34             ` Amir Goldstein
2018-01-17 21:36               ` Amir Goldstein
2018-01-18  8:22               ` Miklos Szeredi
2018-01-18  8:47                 ` Amir Goldstein
2018-01-18  9:12                   ` Miklos Szeredi
2018-01-18 10:28                     ` Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 05/17] ovl: encode non-indexed upper " Amir Goldstein
2018-01-15 11:58   ` Miklos Szeredi
2018-01-15 12:07     ` Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 06/17] ovl: copy up before encoding dir file handle when ofs->numlower > 1 Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 07/17] ovl: encode lower file handles Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 08/17] ovl: decode lower non-dir " Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 09/17] ovl: decode indexed " Amir Goldstein
2018-01-18 13:11   ` Miklos Szeredi
2018-01-04 17:20 ` [PATCH v2 10/17] ovl: decode lower file handles of unlinked but open files Amir Goldstein
2018-01-16  9:16   ` Miklos Szeredi
2018-01-16  9:37     ` Amir Goldstein
2018-01-16 10:10       ` Miklos Szeredi
2018-01-16 10:40         ` Amir Goldstein
2018-01-16 11:07           ` Miklos Szeredi
2018-01-17 21:05         ` Amir Goldstein
2018-01-18 14:18   ` Amir Goldstein
2018-02-27 11:35     ` Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 11/17] ovl: decode indexed dir file handles Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 12/17] ovl: decode pure lower " Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 13/17] ovl: hash directory inodes for NFS export Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 14/17] ovl: lookup connected ancestor of dir in inode cache Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 15/17] ovl: lookup indexed ancestor of lower dir Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 16/17] ovl: wire up NFS export support Amir Goldstein
2018-01-04 17:20 ` [PATCH v2 17/17] nfsd: encode stat->mtime for getattr instead of inode->i_mtime Amir Goldstein

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=CAOQ4uxh-fjfmKH4oQDNYoi5GYaOFy+QmAb7bsV7urRRABTtjPw@mail.gmail.com \
    --to=amir73il@gmail.com \
    --cc=eguan@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=viro@zeniv.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.