FS/XFS testing framework
 help / color / mirror / Atom feed
* [PATCH] xfs_io: use FICLONE/FICLONERANGE/FIDEDUPERANGE for reflink/dedupe IO commands
       [not found] <20240809150455.GV6051@frogsfrogsfrogs>
@ 2024-08-17  6:48 ` liuhuan01
  2024-08-17  6:50 ` [PATCH] xfs: use FICLONE/FICLONERANGE/FIDEDUPERANGE for test cases liuhuan01
  1 sibling, 0 replies; 3+ messages in thread
From: liuhuan01 @ 2024-08-17  6:48 UTC (permalink / raw)
  To: djwong; +Cc: dchinner, linux-xfs, fstests, liuhuan01

From: liuh <liuhuan01@kylinos.cn>

Use FICLONE/FICLONERANGE/FIDEDUPERANGE instead of XFS_IOC_CLONE/XFS_IOC_CLONE_RANGE/XFS_IOC_FILE_EXTENT_SAME.
And the declaration becomes useless, delete it.

Signed-off-by: liuh <liuhuan01@kylinos.cn>
---
 include/xfs_fs_compat.h | 54 -----------------------------------------
 io/reflink.c            | 52 +++++++++++++++++++--------------------
 2 files changed, 26 insertions(+), 80 deletions(-)

diff --git a/include/xfs_fs_compat.h b/include/xfs_fs_compat.h
index 0077f00c..e53dcc6e 100644
--- a/include/xfs_fs_compat.h
+++ b/include/xfs_fs_compat.h
@@ -31,60 +31,6 @@
 #define	XFS_XFLAG_FILESTREAM	FS_XFLAG_FILESTREAM
 #define	XFS_XFLAG_HASATTR	FS_XFLAG_HASATTR
 
-/*
- * Don't use this.
- * Use struct file_clone_range
- */
-struct xfs_clone_args {
-	__s64 src_fd;
-	__u64 src_offset;
-	__u64 src_length;
-	__u64 dest_offset;
-};
-
-/*
- * Don't use these.
- * Use FILE_DEDUPE_RANGE_SAME / FILE_DEDUPE_RANGE_DIFFERS
- */
-#define XFS_EXTENT_DATA_SAME	0
-#define XFS_EXTENT_DATA_DIFFERS	1
-
-/* Don't use this. Use file_dedupe_range_info */
-struct xfs_extent_data_info {
-	__s64 fd;		/* in - destination file */
-	__u64 logical_offset;	/* in - start of extent in destination */
-	__u64 bytes_deduped;	/* out - total # of bytes we were able
-				 * to dedupe from this file */
-	/* status of this dedupe operation:
-	 * < 0 for error
-	 * == XFS_EXTENT_DATA_SAME if dedupe succeeds
-	 * == XFS_EXTENT_DATA_DIFFERS if data differs
-	 */
-	__s32 status;		/* out - see above description */
-	__u32 reserved;
-};
-
-/*
- * Don't use this.
- * Use struct file_dedupe_range
- */
-struct xfs_extent_data {
-	__u64 logical_offset;	/* in - start of extent in source */
-	__u64 length;		/* in - length of extent */
-	__u16 dest_count;	/* in - total elements in info array */
-	__u16 reserved1;
-	__u32 reserved2;
-	struct xfs_extent_data_info info[0];
-};
-
-/*
- * Don't use these.
- * Use FICLONE/FICLONERANGE/FIDEDUPERANGE
- */
-#define XFS_IOC_CLONE		 _IOW (0x94, 9, int)
-#define XFS_IOC_CLONE_RANGE	 _IOW (0x94, 13, struct xfs_clone_args)
-#define XFS_IOC_FILE_EXTENT_SAME _IOWR(0x94, 54, struct xfs_extent_data)
-
 /* 64-bit seconds counter that works independently of the C library time_t. */
 typedef long long int time64_t;
 
diff --git a/io/reflink.c b/io/reflink.c
index b6a3c05a..154ca65b 100644
--- a/io/reflink.c
+++ b/io/reflink.c
@@ -43,49 +43,49 @@ dedupe_ioctl(
 	uint64_t	len,
 	int		*ops)
 {
-	struct xfs_extent_data		*args;
-	struct xfs_extent_data_info	*info;
+	struct file_dedupe_range	*args;
+	struct file_dedupe_range_info	*info;
 	int				error;
 	uint64_t			deduped = 0;
 
-	args = calloc(1, sizeof(struct xfs_extent_data) +
-			 sizeof(struct xfs_extent_data_info));
+	args = calloc(1, sizeof(struct file_dedupe_range) +
+			 sizeof(struct file_dedupe_range_info));
 	if (!args)
 		goto done;
-	info = (struct xfs_extent_data_info *)(args + 1);
-	args->logical_offset = soffset;
-	args->length = len;
+	info = (struct file_dedupe_range_info *)(args + 1);
+	args->src_offset = soffset;
+	args->src_length = len;
 	args->dest_count = 1;
-	info->fd = file->fd;
-	info->logical_offset = doffset;
+	info->dest_fd = file->fd;
+	info->dest_offset = doffset;
 
-	while (args->length > 0 || !*ops) {
-		error = ioctl(fd, XFS_IOC_FILE_EXTENT_SAME, args);
+	while (args->src_length > 0 || !*ops) {
+		error = ioctl(fd, FIDEDUPERANGE, args);
 		if (error) {
-			perror("XFS_IOC_FILE_EXTENT_SAME");
+			perror("FIDEDUPERANGE");
 			exitcode = 1;
 			goto done;
 		}
 		if (info->status < 0) {
-			fprintf(stderr, "XFS_IOC_FILE_EXTENT_SAME: %s\n",
+			fprintf(stderr, "FIDEDUPERANGE: %s\n",
 					_(strerror(-info->status)));
 			goto done;
 		}
-		if (info->status == XFS_EXTENT_DATA_DIFFERS) {
-			fprintf(stderr, "XFS_IOC_FILE_EXTENT_SAME: %s\n",
+		if (info->status == FILE_DEDUPE_RANGE_DIFFERS) {
+			fprintf(stderr, "FIDEDUPERANGE: %s\n",
 					_("Extents did not match."));
 			goto done;
 		}
-		if (args->length != 0 &&
+		if (args->src_length != 0 &&
 		    (info->bytes_deduped == 0 ||
-		     info->bytes_deduped > args->length))
+		     info->bytes_deduped > args->src_length))
 			break;
 
 		(*ops)++;
-		args->logical_offset += info->bytes_deduped;
-		info->logical_offset += info->bytes_deduped;
-		if (args->length >= info->bytes_deduped)
-			args->length -= info->bytes_deduped;
+		args->src_offset += info->bytes_deduped;
+		info->dest_offset += info->bytes_deduped;
+		if (args->src_length >= info->bytes_deduped)
+			args->src_length -= info->bytes_deduped;
 		deduped += info->bytes_deduped;
 	}
 done:
@@ -200,21 +200,21 @@ reflink_ioctl(
 	uint64_t		len,
 	int			*ops)
 {
-	struct xfs_clone_args	args;
+	struct file_clone_range	args;
 	int			error;
 
 	if (soffset == 0 && doffset == 0 && len == 0) {
-		error = ioctl(file->fd, XFS_IOC_CLONE, fd);
+		error = ioctl(file->fd, FICLONE, fd);
 		if (error)
-			perror("XFS_IOC_CLONE");
+			perror("FICLONE");
 	} else {
 		args.src_fd = fd;
 		args.src_offset = soffset;
 		args.src_length = len;
 		args.dest_offset = doffset;
-		error = ioctl(file->fd, XFS_IOC_CLONE_RANGE, &args);
+		error = ioctl(file->fd, FICLONERANGE, &args);
 		if (error)
-			perror("XFS_IOC_CLONE_RANGE");
+			perror("FICLONERANGE");
 	}
 	if (!error)
 		(*ops)++;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] xfs: use FICLONE/FICLONERANGE/FIDEDUPERANGE for test cases
       [not found] <20240809150455.GV6051@frogsfrogsfrogs>
  2024-08-17  6:48 ` [PATCH] xfs_io: use FICLONE/FICLONERANGE/FIDEDUPERANGE for reflink/dedupe IO commands liuhuan01
@ 2024-08-17  6:50 ` liuhuan01
  2024-08-21 17:14   ` Darrick J. Wong
  1 sibling, 1 reply; 3+ messages in thread
From: liuhuan01 @ 2024-08-17  6:50 UTC (permalink / raw)
  To: djwong; +Cc: dchinner, linux-xfs, fstests, liuhuan01

From: liuh <liuhuan01@kylinos.cn>

With the patch "xfs_io: use FICLONE/FICLONERANGE/FIDEDUPERANGE for reflink/dedupe IO commands", and modify relevant test cases.

Signed-off-by: liuh <liuhuan01@kylinos.cn>
---
 common/reflink        |  2 +-
 tests/generic/122.out |  2 +-
 tests/generic/136.out |  2 +-
 tests/generic/157.out | 18 +++++++++---------
 tests/generic/158.out | 20 ++++++++++----------
 tests/generic/303.out |  8 ++++----
 tests/generic/304.out | 14 +++++++-------
 tests/generic/493.out |  4 ++--
 tests/generic/516.out |  2 +-
 tests/generic/518.out |  2 +-
 tests/xfs/319.out     |  2 +-
 tests/xfs/321.out     |  2 +-
 tests/xfs/322.out     |  2 +-
 tests/xfs/323.out     |  2 +-
 14 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/common/reflink b/common/reflink
index 22adc444..21df20e2 100644
--- a/common/reflink
+++ b/common/reflink
@@ -261,7 +261,7 @@ _dedupe_range() {
 # Unify xfs_io dedupe ioctl error message prefix
 _filter_dedupe_error()
 {
-	sed -e 's/^dedupe:/XFS_IOC_FILE_EXTENT_SAME:/g'
+	sed -e 's/^dedupe:/FIDEDUPERANGE:/g'
 }
 
 # Create a file of interleaved unwritten and reflinked blocks
diff --git a/tests/generic/122.out b/tests/generic/122.out
index 4459985c..f243d153 100644
--- a/tests/generic/122.out
+++ b/tests/generic/122.out
@@ -4,7 +4,7 @@ Create the original files
 5e3501f97fd2669babfcbd3e1972e833  TEST_DIR/test-122/file2
 Files 1-2 do not match (intentional)
 (Fail to) dedupe the middle blocks together
-XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
+FIDEDUPERANGE: Extents did not match.
 Compare sections
 35ac8d7917305c385c30f3d82c30a8f6  TEST_DIR/test-122/file1
 5e3501f97fd2669babfcbd3e1972e833  TEST_DIR/test-122/file2
diff --git a/tests/generic/136.out b/tests/generic/136.out
index 508953f6..eee44f07 100644
--- a/tests/generic/136.out
+++ b/tests/generic/136.out
@@ -7,7 +7,7 @@ c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file2
 Dedupe the last blocks together
 1->2
 1->3
-XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
+FIDEDUPERANGE: Extents did not match.
 c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file1
 c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file2
 07ac67bf7f271195442509e79cde4cee  TEST_DIR/test-136/file3
diff --git a/tests/generic/157.out b/tests/generic/157.out
index d4f64b44..0ef12f80 100644
--- a/tests/generic/157.out
+++ b/tests/generic/157.out
@@ -2,23 +2,23 @@ QA output created by 157
 Format and mount
 Create the original files
 Try cross-device reflink
-XFS_IOC_CLONE_RANGE: Invalid cross-device link
+FICLONERANGE: Invalid cross-device link
 Try unaligned reflink
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try overlapping reflink
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try reflink past EOF
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try to reflink a dir
-XFS_IOC_CLONE_RANGE: Is a directory
+FICLONERANGE: Is a directory
 Try to reflink a device
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try to reflink to a dir
 TEST_DIR/test-157/dir1: Is a directory
 Try to reflink to a device
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try to reflink to a fifo
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Try to reflink an append-only file
-XFS_IOC_CLONE_RANGE: Bad file descriptor
+FICLONERANGE: Bad file descriptor
 Reflink two files
diff --git a/tests/generic/158.out b/tests/generic/158.out
index 8df9d9a5..2b304820 100644
--- a/tests/generic/158.out
+++ b/tests/generic/158.out
@@ -2,26 +2,26 @@ QA output created by 158
 Format and mount
 Create the original files
 Try cross-device dedupe
-XFS_IOC_FILE_EXTENT_SAME: Invalid cross-device link
+FIDEDUPERANGE: Invalid cross-device link
 Try unaligned dedupe
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try overlapping dedupe
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try dedupe from past EOF
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try dedupe to past EOF, destination offset beyond EOF
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try dedupe to past EOF, destination offset behind EOF
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try to dedupe a dir
-XFS_IOC_FILE_EXTENT_SAME: Is a directory
+FIDEDUPERANGE: Is a directory
 Try to dedupe a device
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try to dedupe to a dir
 TEST_DIR/test-158/dir1: Is a directory
 Try to dedupe to a device
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try to dedupe to a fifo
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Try to dedupe an append-only file
 Dedupe two files
diff --git a/tests/generic/303.out b/tests/generic/303.out
index 39a88038..256ef66f 100644
--- a/tests/generic/303.out
+++ b/tests/generic/303.out
@@ -4,14 +4,14 @@ Create the original files
 Reflink large single byte file
 Reflink large empty file
 Reflink past maximum file size in dest file (should fail)
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Reflink high offset to low offset
 Reflink past source file EOF (should fail)
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Reflink max size at nonzero offset (should fail)
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Reflink with huge off/len (should fail)
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 Check file creation
 file3
 7ffffffffffffffe:  61  a
diff --git a/tests/generic/304.out b/tests/generic/304.out
index a979099b..d43dd70c 100644
--- a/tests/generic/304.out
+++ b/tests/generic/304.out
@@ -2,19 +2,19 @@ QA output created by 304
 Format and mount
 Create the original files
 Dedupe large single byte file
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe large empty file
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe past maximum file size in dest file (should fail)
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe high offset to low offset
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe past source file EOF (should fail)
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe max size at nonzero offset (should fail)
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Dedupe with huge off/len (should fail)
-XFS_IOC_FILE_EXTENT_SAME: Invalid argument
+FIDEDUPERANGE: Invalid argument
 Check file creation
 file3
 7ffffffffffffffe:  61  a
diff --git a/tests/generic/493.out b/tests/generic/493.out
index d3426ee6..8bb71d3b 100644
--- a/tests/generic/493.out
+++ b/tests/generic/493.out
@@ -2,6 +2,6 @@ QA output created by 493
 Format and mount
 Initialize file
 Try to dedupe
-XFS_IOC_FILE_EXTENT_SAME: Text file busy
-XFS_IOC_FILE_EXTENT_SAME: Text file busy
+FIDEDUPERANGE: Text file busy
+FIDEDUPERANGE: Text file busy
 Tear it down
diff --git a/tests/generic/516.out b/tests/generic/516.out
index 90308c49..53611b3b 100644
--- a/tests/generic/516.out
+++ b/tests/generic/516.out
@@ -4,7 +4,7 @@ Create the original files
 39578c21e2cb9f6049b1cf7fc7be12a6  TEST_DIR/test-516/file2
 Files 1-2 do not match (intentional)
 (partial) dedupe the middle blocks together
-XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
+FIDEDUPERANGE: Extents did not match.
 Compare sections
 35ac8d7917305c385c30f3d82c30a8f6  TEST_DIR/test-516/file1
 39578c21e2cb9f6049b1cf7fc7be12a6  TEST_DIR/test-516/file2
diff --git a/tests/generic/518.out b/tests/generic/518.out
index 726c2073..57ae9155 100644
--- a/tests/generic/518.out
+++ b/tests/generic/518.out
@@ -3,7 +3,7 @@ wrote 262244/262244 bytes at offset 0
 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 wrote 1048576/1048576 bytes at offset 0
 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-XFS_IOC_CLONE_RANGE: Invalid argument
+FICLONERANGE: Invalid argument
 File content after failed reflink:
 0000000 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5
 *
diff --git a/tests/xfs/319.out b/tests/xfs/319.out
index 160f5fd2..25f1ed2e 100644
--- a/tests/xfs/319.out
+++ b/tests/xfs/319.out
@@ -7,7 +7,7 @@ Check files
 4155b81ac6d45c0182fa2bc03960f230  SCRATCH_MNT/file3
 Inject error
 Try to reflink
-XFS_IOC_CLONE_RANGE: Input/output error
+FICLONERANGE: Input/output error
 FS should be shut down, touch will fail
 touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
 Remount to replay log
diff --git a/tests/xfs/321.out b/tests/xfs/321.out
index c0abd52b..59fd7b7b 100644
--- a/tests/xfs/321.out
+++ b/tests/xfs/321.out
@@ -6,7 +6,7 @@ Check files
 b5cfa9d6c8febd618f91ac2843d50a1c  SCRATCH_MNT/file3
 Inject error
 Try to reflink
-XFS_IOC_CLONE_RANGE: Input/output error
+FICLONERANGE: Input/output error
 FS should be shut down, touch will fail
 touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
 Remount to replay log
diff --git a/tests/xfs/322.out b/tests/xfs/322.out
index b3fba5d0..695dd48b 100644
--- a/tests/xfs/322.out
+++ b/tests/xfs/322.out
@@ -6,7 +6,7 @@ Check files
 b5cfa9d6c8febd618f91ac2843d50a1c  SCRATCH_MNT/file3
 Inject error
 Try to reflink
-XFS_IOC_CLONE_RANGE: Input/output error
+FICLONERANGE: Input/output error
 FS should be shut down, touch will fail
 touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
 Remount to replay log
diff --git a/tests/xfs/323.out b/tests/xfs/323.out
index 99b9688c..f7f36c05 100644
--- a/tests/xfs/323.out
+++ b/tests/xfs/323.out
@@ -6,7 +6,7 @@ Check files
 4155b81ac6d45c0182fa2bc03960f230  SCRATCH_MNT/file3
 Inject error
 Try to reflink
-XFS_IOC_CLONE_RANGE: Input/output error
+FICLONERANGE: Input/output error
 FS should be shut down, touch will fail
 touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
 Remount to replay log
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] xfs: use FICLONE/FICLONERANGE/FIDEDUPERANGE for test cases
  2024-08-17  6:50 ` [PATCH] xfs: use FICLONE/FICLONERANGE/FIDEDUPERANGE for test cases liuhuan01
@ 2024-08-21 17:14   ` Darrick J. Wong
  0 siblings, 0 replies; 3+ messages in thread
From: Darrick J. Wong @ 2024-08-21 17:14 UTC (permalink / raw)
  To: liuhuan01; +Cc: dchinner, linux-xfs, fstests

On Sat, Aug 17, 2024 at 02:50:27PM +0800, liuhuan01@kylinos.cn wrote:
> From: liuh <liuhuan01@kylinos.cn>
> 
> With the patch "xfs_io: use FICLONE/FICLONERANGE/FIDEDUPERANGE for reflink/dedupe IO commands", and modify relevant test cases.
> 
> Signed-off-by: liuh <liuhuan01@kylinos.cn>
> ---
>  common/reflink        |  2 +-
>  tests/generic/122.out |  2 +-
>  tests/generic/136.out |  2 +-
>  tests/generic/157.out | 18 +++++++++---------
>  tests/generic/158.out | 20 ++++++++++----------
>  tests/generic/303.out |  8 ++++----
>  tests/generic/304.out | 14 +++++++-------
>  tests/generic/493.out |  4 ++--
>  tests/generic/516.out |  2 +-
>  tests/generic/518.out |  2 +-
>  tests/xfs/319.out     |  2 +-
>  tests/xfs/321.out     |  2 +-
>  tests/xfs/322.out     |  2 +-
>  tests/xfs/323.out     |  2 +-
>  14 files changed, 41 insertions(+), 41 deletions(-)
> 
> diff --git a/common/reflink b/common/reflink
> index 22adc444..21df20e2 100644
> --- a/common/reflink
> +++ b/common/reflink
> @@ -261,7 +261,7 @@ _dedupe_range() {
>  # Unify xfs_io dedupe ioctl error message prefix
>  _filter_dedupe_error()
>  {
> -	sed -e 's/^dedupe:/XFS_IOC_FILE_EXTENT_SAME:/g'
> +	sed -e 's/^dedupe:/FIDEDUPERANGE:/g'

Hmm, don't you have to squash both "dedupe:" and
"XFS_IOC_FILE_EXTENT_SAME:" to "FIDEDUPERANGE:" here?  Or else you break
the intermediate xfs_io versions that emit "XFS_IOC_FILE_EXTENT_SAME:"?

And apply the same filtering for the clone and clonerange ioctls?

(Or just leave the error message prefixes in xfs_io the way they are!)

--D

>  }
>  
>  # Create a file of interleaved unwritten and reflinked blocks
> diff --git a/tests/generic/122.out b/tests/generic/122.out
> index 4459985c..f243d153 100644
> --- a/tests/generic/122.out
> +++ b/tests/generic/122.out
> @@ -4,7 +4,7 @@ Create the original files
>  5e3501f97fd2669babfcbd3e1972e833  TEST_DIR/test-122/file2
>  Files 1-2 do not match (intentional)
>  (Fail to) dedupe the middle blocks together
> -XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
> +FIDEDUPERANGE: Extents did not match.
>  Compare sections
>  35ac8d7917305c385c30f3d82c30a8f6  TEST_DIR/test-122/file1
>  5e3501f97fd2669babfcbd3e1972e833  TEST_DIR/test-122/file2
> diff --git a/tests/generic/136.out b/tests/generic/136.out
> index 508953f6..eee44f07 100644
> --- a/tests/generic/136.out
> +++ b/tests/generic/136.out
> @@ -7,7 +7,7 @@ c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file2
>  Dedupe the last blocks together
>  1->2
>  1->3
> -XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
> +FIDEDUPERANGE: Extents did not match.
>  c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file1
>  c4fd505be25a0c91bcca9f502b9a8156  TEST_DIR/test-136/file2
>  07ac67bf7f271195442509e79cde4cee  TEST_DIR/test-136/file3
> diff --git a/tests/generic/157.out b/tests/generic/157.out
> index d4f64b44..0ef12f80 100644
> --- a/tests/generic/157.out
> +++ b/tests/generic/157.out
> @@ -2,23 +2,23 @@ QA output created by 157
>  Format and mount
>  Create the original files
>  Try cross-device reflink
> -XFS_IOC_CLONE_RANGE: Invalid cross-device link
> +FICLONERANGE: Invalid cross-device link
>  Try unaligned reflink
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try overlapping reflink
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try reflink past EOF
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try to reflink a dir
> -XFS_IOC_CLONE_RANGE: Is a directory
> +FICLONERANGE: Is a directory
>  Try to reflink a device
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try to reflink to a dir
>  TEST_DIR/test-157/dir1: Is a directory
>  Try to reflink to a device
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try to reflink to a fifo
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Try to reflink an append-only file
> -XFS_IOC_CLONE_RANGE: Bad file descriptor
> +FICLONERANGE: Bad file descriptor
>  Reflink two files
> diff --git a/tests/generic/158.out b/tests/generic/158.out
> index 8df9d9a5..2b304820 100644
> --- a/tests/generic/158.out
> +++ b/tests/generic/158.out
> @@ -2,26 +2,26 @@ QA output created by 158
>  Format and mount
>  Create the original files
>  Try cross-device dedupe
> -XFS_IOC_FILE_EXTENT_SAME: Invalid cross-device link
> +FIDEDUPERANGE: Invalid cross-device link
>  Try unaligned dedupe
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try overlapping dedupe
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try dedupe from past EOF
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try dedupe to past EOF, destination offset beyond EOF
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try dedupe to past EOF, destination offset behind EOF
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try to dedupe a dir
> -XFS_IOC_FILE_EXTENT_SAME: Is a directory
> +FIDEDUPERANGE: Is a directory
>  Try to dedupe a device
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try to dedupe to a dir
>  TEST_DIR/test-158/dir1: Is a directory
>  Try to dedupe to a device
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try to dedupe to a fifo
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Try to dedupe an append-only file
>  Dedupe two files
> diff --git a/tests/generic/303.out b/tests/generic/303.out
> index 39a88038..256ef66f 100644
> --- a/tests/generic/303.out
> +++ b/tests/generic/303.out
> @@ -4,14 +4,14 @@ Create the original files
>  Reflink large single byte file
>  Reflink large empty file
>  Reflink past maximum file size in dest file (should fail)
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Reflink high offset to low offset
>  Reflink past source file EOF (should fail)
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Reflink max size at nonzero offset (should fail)
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Reflink with huge off/len (should fail)
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  Check file creation
>  file3
>  7ffffffffffffffe:  61  a
> diff --git a/tests/generic/304.out b/tests/generic/304.out
> index a979099b..d43dd70c 100644
> --- a/tests/generic/304.out
> +++ b/tests/generic/304.out
> @@ -2,19 +2,19 @@ QA output created by 304
>  Format and mount
>  Create the original files
>  Dedupe large single byte file
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe large empty file
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe past maximum file size in dest file (should fail)
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe high offset to low offset
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe past source file EOF (should fail)
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe max size at nonzero offset (should fail)
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Dedupe with huge off/len (should fail)
> -XFS_IOC_FILE_EXTENT_SAME: Invalid argument
> +FIDEDUPERANGE: Invalid argument
>  Check file creation
>  file3
>  7ffffffffffffffe:  61  a
> diff --git a/tests/generic/493.out b/tests/generic/493.out
> index d3426ee6..8bb71d3b 100644
> --- a/tests/generic/493.out
> +++ b/tests/generic/493.out
> @@ -2,6 +2,6 @@ QA output created by 493
>  Format and mount
>  Initialize file
>  Try to dedupe
> -XFS_IOC_FILE_EXTENT_SAME: Text file busy
> -XFS_IOC_FILE_EXTENT_SAME: Text file busy
> +FIDEDUPERANGE: Text file busy
> +FIDEDUPERANGE: Text file busy
>  Tear it down
> diff --git a/tests/generic/516.out b/tests/generic/516.out
> index 90308c49..53611b3b 100644
> --- a/tests/generic/516.out
> +++ b/tests/generic/516.out
> @@ -4,7 +4,7 @@ Create the original files
>  39578c21e2cb9f6049b1cf7fc7be12a6  TEST_DIR/test-516/file2
>  Files 1-2 do not match (intentional)
>  (partial) dedupe the middle blocks together
> -XFS_IOC_FILE_EXTENT_SAME: Extents did not match.
> +FIDEDUPERANGE: Extents did not match.
>  Compare sections
>  35ac8d7917305c385c30f3d82c30a8f6  TEST_DIR/test-516/file1
>  39578c21e2cb9f6049b1cf7fc7be12a6  TEST_DIR/test-516/file2
> diff --git a/tests/generic/518.out b/tests/generic/518.out
> index 726c2073..57ae9155 100644
> --- a/tests/generic/518.out
> +++ b/tests/generic/518.out
> @@ -3,7 +3,7 @@ wrote 262244/262244 bytes at offset 0
>  XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>  wrote 1048576/1048576 bytes at offset 0
>  XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -XFS_IOC_CLONE_RANGE: Invalid argument
> +FICLONERANGE: Invalid argument
>  File content after failed reflink:
>  0000000 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5 b5
>  *
> diff --git a/tests/xfs/319.out b/tests/xfs/319.out
> index 160f5fd2..25f1ed2e 100644
> --- a/tests/xfs/319.out
> +++ b/tests/xfs/319.out
> @@ -7,7 +7,7 @@ Check files
>  4155b81ac6d45c0182fa2bc03960f230  SCRATCH_MNT/file3
>  Inject error
>  Try to reflink
> -XFS_IOC_CLONE_RANGE: Input/output error
> +FICLONERANGE: Input/output error
>  FS should be shut down, touch will fail
>  touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
>  Remount to replay log
> diff --git a/tests/xfs/321.out b/tests/xfs/321.out
> index c0abd52b..59fd7b7b 100644
> --- a/tests/xfs/321.out
> +++ b/tests/xfs/321.out
> @@ -6,7 +6,7 @@ Check files
>  b5cfa9d6c8febd618f91ac2843d50a1c  SCRATCH_MNT/file3
>  Inject error
>  Try to reflink
> -XFS_IOC_CLONE_RANGE: Input/output error
> +FICLONERANGE: Input/output error
>  FS should be shut down, touch will fail
>  touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
>  Remount to replay log
> diff --git a/tests/xfs/322.out b/tests/xfs/322.out
> index b3fba5d0..695dd48b 100644
> --- a/tests/xfs/322.out
> +++ b/tests/xfs/322.out
> @@ -6,7 +6,7 @@ Check files
>  b5cfa9d6c8febd618f91ac2843d50a1c  SCRATCH_MNT/file3
>  Inject error
>  Try to reflink
> -XFS_IOC_CLONE_RANGE: Input/output error
> +FICLONERANGE: Input/output error
>  FS should be shut down, touch will fail
>  touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
>  Remount to replay log
> diff --git a/tests/xfs/323.out b/tests/xfs/323.out
> index 99b9688c..f7f36c05 100644
> --- a/tests/xfs/323.out
> +++ b/tests/xfs/323.out
> @@ -6,7 +6,7 @@ Check files
>  4155b81ac6d45c0182fa2bc03960f230  SCRATCH_MNT/file3
>  Inject error
>  Try to reflink
> -XFS_IOC_CLONE_RANGE: Input/output error
> +FICLONERANGE: Input/output error
>  FS should be shut down, touch will fail
>  touch: cannot touch 'SCRATCH_MNT/badfs': Input/output error
>  Remount to replay log
> -- 
> 2.43.0
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-08-21 17:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20240809150455.GV6051@frogsfrogsfrogs>
2024-08-17  6:48 ` [PATCH] xfs_io: use FICLONE/FICLONERANGE/FIDEDUPERANGE for reflink/dedupe IO commands liuhuan01
2024-08-17  6:50 ` [PATCH] xfs: use FICLONE/FICLONERANGE/FIDEDUPERANGE for test cases liuhuan01
2024-08-21 17:14   ` Darrick J. Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox