From: Darrick J. Wong Date: Sun, 11 Dec 2016 21:53:22 +0000 (-0800) Subject: reflink: don't test disjoint block sharing sets X-Git-Tag: v2022.05.01~2274 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f613638308c9a0a91d83f13dab7d79549d1cacbd;p=users%2Fhch%2Fxfstests-dev.git reflink: don't test disjoint block sharing sets Unlike xfs/btrfs which store refcounting information as part of the space metadata, ocfs2 implements block sharing (reflink) by creating refcount btrees that are shared between subsets of files. Effectively, this means that a ocfs2 can have multiple disjoint sets of files that share blocks, which also means that blocks cannot be reflinked between two disjoint refcounted-file-sets. generic/119 tests the ability to do this, so we cannot run it for ocfs2. Create a _require helper to check for this. Signed-off-by: Darrick J. Wong Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/common/reflink b/common/reflink index 9d51729b1..64ee04f66 100644 --- a/common/reflink +++ b/common/reflink @@ -28,6 +28,15 @@ _require_cp_reflink() _notrun "This test requires a cp with --reflink support." } +# Can we reflink between arbitrary file sets? +# i.e. if we reflink a->b and c->d, can we later share +# blocks between b & c? +_require_arbitrary_fileset_reflink() +{ + test "$FSTYP" = "ocfs2" && \ + _notrun "reflink between arbitrary file groups not supported in $FSTYP" +} + # Given 2 files, verify that they have the same mapping but different # inodes - i.e. an undisturbed reflink # Silent if so, make noise if not diff --git a/tests/generic/119 b/tests/generic/119 index e6a6f5962..b28e044aa 100755 --- a/tests/generic/119 +++ b/tests/generic/119 @@ -47,6 +47,7 @@ _cleanup() # real QA test starts here _supported_os Linux _require_test_reflink +_require_arbitrary_fileset_reflink rm -f $seqres.full