All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eryu Guan <eguan@redhat.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: ocfs2-devel@oss.oracle.com, fstests@vger.kernel.org
Subject: Re: [PATCH 1/7] ocfs2: test reflinking to inline data files
Date: Mon, 12 Dec 2016 17:01:20 +0800	[thread overview]
Message-ID: <20161212090120.GV29149@eguan.usersys.redhat.com> (raw)
In-Reply-To: <148149317133.31093.439907074888693999.stgit@birch.djwong.org>

On Sun, Dec 11, 2016 at 01:52:51PM -0800, Darrick J. Wong wrote:
> Make sure that we can handle reflinking from and to inline-data files.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
>  common/reflink       |    2 +
>  tests/ocfs2/001      |   88 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  tests/ocfs2/001.out  |   14 ++++++++
>  tests/ocfs2/Makefile |   20 +++++++++++
>  tests/ocfs2/group    |    1 +
>  5 files changed, 124 insertions(+), 1 deletion(-)
>  create mode 100755 tests/ocfs2/001
>  create mode 100644 tests/ocfs2/001.out
>  create mode 100644 tests/ocfs2/Makefile
>  create mode 100644 tests/ocfs2/group
> 
> 
> diff --git a/common/reflink b/common/reflink
> index 9d51729..d048045 100644
> --- a/common/reflink
> +++ b/common/reflink
> @@ -197,7 +197,7 @@ _cp_reflink() {
>  	file1="$1"
>  	file2="$2"
>  
> -	cp --reflink=always -p "$file1" "$file2"
> +	cp --reflink=always -p -f "$file1" "$file2"

I'm still seeing "File exists" error with this patch, tested with your
ocfs2-vfs-reflink-6 branch, compiled on openSUSE Tumbleweed.

FSTYP         -- ocfs2
PLATFORM      -- Linux/x86_64 bootp-73-5-234 4.9.0-rc8.djwong-ocfs2+
MKFS_OPTIONS  -- --fs-features=local /dev/sda5
MOUNT_OPTIONS -- /dev/sda5 /mnt/testarea/scratch

ocfs2/001        - output mismatch (see /root/xfstests/results//ocfs2/ocfs2/001.out.bad)
    --- tests/ocfs2/001.out     2016-12-12 13:51:38.053909486 +0800
    +++ /root/xfstests/results//ocfs2/ocfs2/001.out.bad 2016-12-12 16:49:35.038882697 +0800
    @@ -1,14 +1,18 @@
     QA output created by 001
    +mkfs.ocfs2 1.8.4
     Format and mount
     Create the original files
     reflink into the start of file2
    +cp: failed to reflink '/mnt/testarea/scratch/test-001/file2' from '/mnt/testarea/scratch/test-001/file1': File exists
     reflink past the stuff in file3
    ...
    (Run 'diff -u tests/ocfs2/001.out /root/xfstests/results//ocfs2/ocfs2/001.out.bad'  to see the entire diff)

--- tests/ocfs2/001.out 2016-12-12 13:51:38.053909486 +0800
+++ /root/xfstests/results//ocfs2/ocfs2/001.out.bad     2016-12-12 16:44:31.991943842 +0800
@@ -1,14 +1,18 @@
 QA output created by 001
+mkfs.ocfs2 1.8.4
 Format and mount
 Create the original files
 reflink into the start of file2
+cp: failed to reflink '/mnt/testarea/scratch/test-001/file2' from '/mnt/testarea/scratch/test-001/file1': File exists
 reflink past the stuff in file3
 reflink an inline-data file to a regular one
+cp: failed to reflink '/mnt/testarea/scratch/test-001/file5' from '/mnt/testarea/scratch/test-001/file4': File exists
 reflink an inline-data file to another inline-data file
+cp: failed to reflink '/mnt/testarea/scratch/test-001/file6' from '/mnt/testarea/scratch/test-001/file4': File exists
 Verify the whole mess
 2d61aa54b58c2e94403fb092c3dbc027  SCRATCH_MNT/test-001/file1
-2d61aa54b58c2e94403fb092c3dbc027  SCRATCH_MNT/test-001/file2
+401b30e3b8b5d629635a5c613cdb7919  SCRATCH_MNT/test-001/file2
 4e68a2e24b6b0f386ab39d01d902293d  SCRATCH_MNT/test-001/file3
 009520053b00386d1173f3988c55d192  SCRATCH_MNT/test-001/file4
-009520053b00386d1173f3988c55d192  SCRATCH_MNT/test-001/file5
-009520053b00386d1173f3988c55d192  SCRATCH_MNT/test-001/file6
+2d61aa54b58c2e94403fb092c3dbc027  SCRATCH_MNT/test-001/file5
+60b725f10c9c85c70d97880dfe8191b3  SCRATCH_MNT/test-001/file6

I did the "reflink into the start of file2" test manually, and strace
showed that it is file1 reports EEXIST.

open("/mnt/ocfs2/testfile1", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=65536, ...}) = 0
ioctl(3, _IOC(_IOC_WRITE, 0x6f, 0x04, 0x18), 0x7ffc8daf09f0) = -1 EEXIST (File exists)

The same test on XFS works fine. Did I miss anything?

Thanks,
Eryu

  reply	other threads:[~2016-12-12  9:01 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-11 21:52 [PATCH 0/7] xfstests: misc reflink test fixes Darrick J. Wong
2016-12-11 21:52 ` [Ocfs2-devel] " Darrick J. Wong
2016-12-11 21:52 ` [PATCH 1/7] ocfs2: test reflinking to inline data files Darrick J. Wong
2016-12-11 21:52   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12  9:01   ` Eryu Guan [this message]
2016-12-12 18:09     ` Darrick J. Wong
2016-12-12 18:09       ` [Ocfs2-devel] " Darrick J. Wong
2016-12-13  3:20       ` Eryu Guan
2016-12-13  7:11         ` Darrick J. Wong
2016-12-13  7:11           ` [Ocfs2-devel] " Darrick J. Wong
2016-12-13 21:35           ` Darrick J. Wong
2016-12-13 21:35             ` [Ocfs2-devel] " Darrick J. Wong
2016-12-14  7:32             ` Eric Ren
2016-12-14  7:32               ` [Ocfs2-devel] " Eric Ren
2016-12-11 21:52 ` [PATCH 2/7] ocfs2/reflink: fix file block size reporting Darrick J. Wong
2016-12-11 21:52   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12  9:48   ` Eryu Guan
2016-12-12 23:08     ` Darrick J. Wong
2016-12-12 23:08       ` [Ocfs2-devel] " Darrick J. Wong
2016-12-11 21:53 ` [PATCH 3/7] reflink: fix quota tests to work properly Darrick J. Wong
2016-12-11 21:53   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12 10:06   ` Eryu Guan
2016-12-12 23:08     ` Darrick J. Wong
2016-12-12 23:08       ` [Ocfs2-devel] " Darrick J. Wong
2016-12-11 21:53 ` [PATCH 4/7] reflink: fix space consumption tests Darrick J. Wong
2016-12-11 21:53   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12 10:25   ` Eryu Guan
2016-12-12 23:03     ` Darrick J. Wong
2016-12-12 23:03       ` [Ocfs2-devel] " Darrick J. Wong
2016-12-13  3:22       ` Eryu Guan
2016-12-11 21:53 ` [PATCH 5/7] reflink: make error reporting consistent Darrick J. Wong
2016-12-11 21:53   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12 10:47   ` Eryu Guan
2016-12-12 23:06     ` Darrick J. Wong
2016-12-12 23:06       ` [Ocfs2-devel] " Darrick J. Wong
2016-12-11 21:53 ` [PATCH 6/7] reflink: don't test disjoint block sharing sets Darrick J. Wong
2016-12-11 21:53   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-11 21:53 ` [PATCH 7/7] xfs/ext4: check negative inode size Darrick J. Wong
2016-12-11 21:53   ` [Ocfs2-devel] " Darrick J. Wong
2016-12-12 11:07   ` Eryu Guan
2016-12-13 21:49     ` Darrick J. Wong
2016-12-13 21:49       ` [Ocfs2-devel] " Darrick J. Wong
2017-01-05  1:04 [PATCH 0/7] xfstests: misc reflink test fixes Darrick J. Wong
2017-01-05  1:04 ` [PATCH 1/7] ocfs2: test reflinking to inline data files Darrick J. Wong

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=20161212090120.GV29149@eguan.usersys.redhat.com \
    --to=eguan@redhat.com \
    --cc=darrick.wong@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=ocfs2-devel@oss.oracle.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 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.