From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: linux-btrfs@vger.kernel.org, fstests@vger.kernel.org
Subject: Re: [PATCH] fstests: Introduce check for explicit SHARED extent flag reporting
Date: Thu, 17 Nov 2016 21:54:35 -0800 [thread overview]
Message-ID: <20161118055435.GB26329@birch.djwong.org> (raw)
In-Reply-To: <20161117020648.19685-1-quwenruo@cn.fujitsu.com>
On Thu, Nov 17, 2016 at 10:06:48AM +0800, Qu Wenruo wrote:
> For fs support reflink, some of them (OK, btrfs again) doesn't split
> SHARED flag for extent fiemap reporting.
>
> For example:
> 0 4K 8K
> / File1: Extent 0 \
> / \
> |<- On disk Extent-->|
> | /
> | File2 /
> Extent: 0
>
> Fs supports explicit SHARED extent reporting should report fiemap like:
> File1: 2 extents
> Extent 0-4K: SHARED
> Extent 4-8K:
> File2: 1 extents
> Extent 0-4K: SHARED
>
> Fs doesn't support explicit reporting will report fiemap like:
> File1: 1 extent
> Extent 0-8K: SHARED
> File2: 1 extent
> Extent 0-4K: SHARED
How difficult /would/ it be to fix btrfs, anyway?
--D
>
> Test case like generic/372 require explicit reporting will cause false
> alert on btrfs.
>
> Add such runtime check for that requirememt.
>
> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
> ---
> common/reflink | 44 ++++++++++++++++++++++++++++++++++++++++++++
> tests/generic/372 | 1 +
> 2 files changed, 45 insertions(+)
>
> diff --git a/common/reflink b/common/reflink
> index 8b34046..9ada2e8 100644
> --- a/common/reflink
> +++ b/common/reflink
> @@ -78,6 +78,50 @@ _require_scratch_reflink()
> _scratch_unmount
> }
>
> +# this test requires scratch fs to report explicit SHARED flag
> +# e.g.
> +# 0 4K 8K
> +# / File1: Extent 0 \
> +# / \
> +# |<- On disk Extent-->|
> +# | /
> +# | File2 /
> +# Extent: 0
> +# Fs supports explicit SHARED extent reporting should report fiemap like:
> +# File1: 2 extents
> +# Extent 0-4K: SHARED
> +# Extent 4-8K:
> +# File2: 1 extents
> +# Extent 0-4K: SHARED
> +#
> +# Fs doesn't support explicit reporting will report fiemap like:
> +# File1: 1 extent
> +# Extent 0-8K: SHARED
> +# File2: 1 extent
> +# Extent 0-4K: SHARED
> +_require_scratch_explicit_shared_extents()
> +{
> + _require_scratch
> + _require_fiemap
> + _require_scratch_reflink
> + _require_xfs_io_command "reflink"
> + local nr_extents
> +
> + _scratch_mkfs > /dev/null
> + _scratch_mount
> +
> + _pwrite_byte 0x61 0 128k $SCRATCH_MNT/file1
> + _reflink_range $SCRATCH_MNT/file1 0 $SCRATCH_MNT/file2 0 64k
> +
> + _scratch_cycle_mount
> +
> + nr_extents=$(_count_extents $SCRATCH_MNT/file1)
> + if [ $nr_extents -eq 1 ]; then
> + _notrun "Explicit SHARED flag reporting not support by filesystem type: $FSTYP"
> + fi
> + _scratch_unmount
> +}
> +
> # this test requires the test fs support dedupe...
> _require_test_dedupe()
> {
> diff --git a/tests/generic/372 b/tests/generic/372
> index 31dff20..51a3eca 100755
> --- a/tests/generic/372
> +++ b/tests/generic/372
> @@ -47,6 +47,7 @@ _supported_os Linux
> _supported_fs generic
> _require_scratch_reflink
> _require_fiemap
> +_require_scratch_explicit_shared_extents
>
> echo "Format and mount"
> _scratch_mkfs > $seqres.full 2>&1
> --
> 2.7.4
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-11-18 5:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-17 2:06 [PATCH] fstests: Introduce check for explicit SHARED extent flag reporting Qu Wenruo
2016-11-18 5:54 ` Darrick J. Wong [this message]
2016-11-18 6:10 ` Qu Wenruo
2016-11-18 7:21 ` Eryu Guan
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=20161118055435.GB26329@birch.djwong.org \
--to=darrick.wong@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo@cn.fujitsu.com \
/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