All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Misono, Tomohiro" <misono.tomohiro@jp.fujitsu.com>
To: Eryu Guan <eguan@redhat.com>
Cc: fstests@vger.kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs/029: fix wrong usage of name filter
Date: Fri, 1 Sep 2017 09:44:59 +0900	[thread overview]
Message-ID: <7ec7d078-9a33-91ca-ea68-652f58fb5d41@jp.fujitsu.com> (raw)
In-Reply-To: <20170831073319.GI27835@eguan.usersys.redhat.com>

On 2017/08/31 16:33, Eryu Guan wrote:
> On Thu, Aug 31, 2017 at 08:53:09AM +0900, Misono, Tomohiro wrote:
>> On 2017/08/30 20:09, Eryu Guan wrote:
>>> On Wed, Aug 30, 2017 at 04:38:16PM +0900, Misono, Tomohiro wrote:
>>>> btrfs/029 uses _filter_testdirs() to filter the name of $TEST_DIR and
>>>> $SCRATCH_MNT directory.
>>>>
>>>> In this function, it calls both _filter_test_dir and _filter_scratch
>>>> concatenapted by pipe. Therefore if $TEST_DIR is a prefix of
>>>> $SCRATCH_MNT, this filter function gives wrong filtered name for
>>>> $SCRATCH_MNT and the test fails.
>>>
>>> Sorry, I'm a bit confused, how could $TEST_DIR be a prefix of
>>> $SCRATCH_MNT? Won't that fail the test at setup time?
>>
>> I used "/mnt" for $TEST_DIR and "/mnt_scratch" for $SCRATCH_MNT and hit
>> this problem because "/mnt_scratch" is filtered to "$TEST_DIR_scrach"
>> instead of "$SCRATCH_MNT".
>>
>> I think these are valid directory names and other btrfs tests run correctly
>> with these names.
> 
> Ah, yes, that's possible and a valid (though not usual) test setup. The
> filter becomes complex when one string is prefix of another string, we
> have similar problems when filtering TEST_DIR vs TEST_DEV and
> SCRATCH_MNT vs SCRATCH_DEV in _filter_test_dir and _filter_scratch.
> 
> But the fix only works around btrfs/029, but there're other places we
> use the two filters together, like in _filter_quota, TEST_DIR filter
> results would be wrong if SCRATCH_MNT is a prefix of TEST_DIR, because
> in _filter_quota it calls _filter_scratch first.
> 
> I think one solution is that we filter the longer string first, e.g.
> move _filter_testdirs to common/filter and update it to something like:
> 
> # filter both test and scratch mount points and devices, but always
> # filter the longer string if the other string is a substring of the
> # first one.
> _filter_testdirs()
> {
> 	if echo "$TEST_DIR" | grep -q "$SCRATCH_MNT"; then
> 		_filter_test_dir | _filter_scratch
> 	else
> 		_filter_scratch | _filter_test_dir
> 	fi
> }
> 
> And use this new helper when needed. I found 4 places that need update,
> they're btrfs/029, generic/409, generic/410, generic/411 and
> _filter_quota().
> 

Ok. I will do that if you won't, though I'm not sure other combination of 
filters would pose the similar problem.

Thanks,
Tomohiro


  reply	other threads:[~2017-09-01  0:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30  7:38 [PATCH] btrfs/029: fix wrong usage of name filter Misono, Tomohiro
2017-08-30 11:09 ` Eryu Guan
2017-08-30 23:53   ` Misono, Tomohiro
2017-08-31  7:33     ` Eryu Guan
2017-09-01  0:44       ` Misono, Tomohiro [this message]
2017-09-01  3:47         ` Eryu Guan
  -- strict thread matches above, loose matches on Subject: below --
2017-08-30  2:44 Misono, Tomohiro
2017-08-30  6:56 ` Misono, Tomohiro

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=7ec7d078-9a33-91ca-ea68-652f58fb5d41@jp.fujitsu.com \
    --to=misono.tomohiro@jp.fujitsu.com \
    --cc=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-btrfs@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 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.