From: Eryu Guan <eguan@redhat.com>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Chandan Rajendra <chandan@linux.vnet.ibm.com>,
fstests <fstests@vger.kernel.org>,
overlayfs <linux-unionfs@vger.kernel.org>
Subject: Re: [PATCH V2] overlay: Test consistent st_ino numbers for non-samefs scenario
Date: Wed, 15 Nov 2017 14:36:44 +0800 [thread overview]
Message-ID: <20171115063644.GK17339@eguan.usersys.redhat.com> (raw)
In-Reply-To: <CAOQ4uxj993Dihz3aTbC-ejcnZrxnh2AqufV25agpjfW_02Dbbg@mail.gmail.com>
On Tue, Nov 14, 2017 at 03:45:17PM +0200, Amir Goldstein wrote:
> On Tue, Nov 14, 2017 at 1:09 PM, Chandan Rajendra
> <chandan@linux.vnet.ibm.com> wrote:
> > This commit adds a test to verify consistent st_ino feature when
> > the overlayfs instance is composed of two different underlying
> > filesystem instances.
> >
> > For example,
> > $ mount -t xfs /dev/loop0 /mnt/test
> > $ mount -t xfs /dev/loop1 /mnt/scratch
> > $ mkdir /mnt/scratch/upper
> > $ mkdir /mnt/scratch/work
> > $ mount -t overlay overlay -o lowerdir=/mnt/test \
> > -o upperdir=/mnt/scratch/upper \
> > -o workdir=/mnt/scratch/work /mnt/merge
> >
> > The goal of this test is to verify that overlayfs returns consistent
> > st_ino for the following scenarios,
> > - Copy-up of lowerdir files
> > - Rename files and drop dentry/inode cache
> > - Remount the overlayfs instance
> >
> > Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
> > ---
> > Changelog:
> > v1->v2:
> > Address review comments provided by Amir.
> > 1. To succeed, the test now requires the underlying base filesystems to provide
> > 32-bit inode numbers or the user to provide "xino" mount option. The test
> > also requires that either overlayfs 'index' config feature to be enabled by
> > default or to be enabled by using the 'index=on' mount option.
> > 2. Require $TEST_DEV for use as Overlayfs' lowerdir.
> > 3. Pass $OVERLAY_MOUNT_OPTIONS as argument to _overlay_scratch_mount_dirs().
> >
> > tests/overlay/043 | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++
> > tests/overlay/043.out | 2 +
> > tests/overlay/group | 1 +
> > 3 files changed, 170 insertions(+)
> > create mode 100755 tests/overlay/043
> > create mode 100644 tests/overlay/043.out
> >
> > diff --git a/tests/overlay/043 b/tests/overlay/043
> > new file mode 100755
> > index 0000000..5778564
> > --- /dev/null
> > +++ b/tests/overlay/043
> > @@ -0,0 +1,167 @@
> > +#! /bin/bash
> > +# FSQA Test No. 043
> > +#
> > +# Test constant inode numbers on non-samefs setup
> > +# This is a variant of overlay/017 to test constant st_ino numbers for
> > +# non-samefs setup.
> > +#
> > +# This simple test demonstrates a known issue with overlayfs:
> > +# - stat file A shows inode number X
> > +# - modify A to trigger copy up
> > +# - stat file A shows inode number Y != X
> > +#
> > +# Also test if d_ino of readdir entries changes after copy up
> > +# and if inode numbers persist after rename, drop caches and
> > +# mount cycle.
> > +#
> > +# This test succeeds when either the underlying filesystems provide 32-bit
> > +# inode numbers or when the xino mount option is provided. This test
> > +# also requires that either overlayfs 'index' config feature to be enabled by
> > +# default or to be enabled by using the 'index=on' mount option.
> > +#
>
>
> Test looks good, but I am not happy with merging this text, even though I wrote
> part of it...
>
> Regarding the claim that the test succeeds on 32bit ino file systems,
> this is not
> yet true and may not be true in the future. We won't know how 'xino' will be
> call or configured until the feature is merged, so I suggest to leave
> this paragraph
> out of the test description before merging.
>
> Regarding the 'index' feature text, I don't like the situation as it is.
> I would like to get a feedback from Eryu after he understands the options,
> but my proposal is as follows:
>
> - Test overlay/017 (constant st_ino/d_ino) should be independent of index
> so remove "hardlink1 hardlink2" from overlay/017 FILES, because the
> hardlinks use case is already covered by the more specific 018 test
> which does require and enable index.
> - Add the d_ino verification from 017 also to 018, so test coverage for
> hardlinks doesn't change
> - That makes 017 a regression test for constant st_ino/d_ino (excluding
> hardlinks), even if index is disabled and 018 a regression test for hardlinks
> (including st_ino/d_ino) which depends on index feature
>
> If that is acceptable then the new variants 017 should not require index
> and a nonsamefs variant of 018 which does require index would be nice.
After re-reading the patch description that introduced index feature and
overlay/017,8, I agreed with above proposal, so that 017 and 018 become
well separated/defined tests to cover the whole constant inode feature
in samefs setup.
>
> Thinking out loud: would it have been better if we added a general way
> to configure all tests to tun in non-samefs configuration instead of duplicating
> individual test? I don't have any good ideas how that would work.
I think duplicating some of the tests with a slightly different setup
should be fine, we already have several examples in fstests now.
Thanks,
Eryu
prev parent reply other threads:[~2017-11-15 6:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-14 11:09 [PATCH V2] overlay: Test consistent st_ino numbers for non-samefs scenario Chandan Rajendra
2017-11-14 13:45 ` Amir Goldstein
2017-11-15 6:36 ` Eryu Guan [this message]
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=20171115063644.GK17339@eguan.usersys.redhat.com \
--to=eguan@redhat.com \
--cc=amir73il@gmail.com \
--cc=chandan@linux.vnet.ibm.com \
--cc=fstests@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
/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).