|
|
@@ -0,0 +1,48 @@
|
|
|
+From 8041435de7ed028a27ecca64302945ad455c69a6 Mon Sep 17 00:00:00 2001
|
|
|
+From: "Darrick J. Wong" <[email protected]>
|
|
|
+Date: Mon, 5 Feb 2018 14:38:02 -0600
|
|
|
+Subject: [PATCH] xfs_io: fix copy_file_range symbol name collision
|
|
|
+
|
|
|
+glibc 2.27 has a copy_file_range wrapper, so we need to change our
|
|
|
+internal function out of the way to avoid compiler warnings.
|
|
|
+
|
|
|
+Reported-by: [email protected]
|
|
|
+Signed-off-by: Darrick J. Wong <[email protected]>
|
|
|
+Reviewed-by: Eric Sandeen <[email protected]>
|
|
|
+Signed-off-by: Eric Sandeen <[email protected]>
|
|
|
+---
|
|
|
+ io/copy_file_range.c | 11 ++++++++---
|
|
|
+ 1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
+
|
|
|
+--- a/io/copy_file_range.c
|
|
|
++++ b/io/copy_file_range.c
|
|
|
+@@ -42,13 +42,18 @@ copy_range_help(void)
|
|
|
+ "));
|
|
|
+ }
|
|
|
+
|
|
|
++/*
|
|
|
++ * Issue a raw copy_file_range syscall; for our test program we don't want the
|
|
|
++ * glibc buffered copy fallback.
|
|
|
++ */
|
|
|
+ static loff_t
|
|
|
+-copy_file_range(int fd, loff_t *src, loff_t *dst, size_t len)
|
|
|
++copy_file_range_cmd(int fd, loff_t *src, loff_t *dst, size_t len)
|
|
|
+ {
|
|
|
+ loff_t ret;
|
|
|
+
|
|
|
+ do {
|
|
|
+- ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst, len, 0);
|
|
|
++ ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst,
|
|
|
++ len, 0);
|
|
|
+ if (ret == -1) {
|
|
|
+ perror("copy_range");
|
|
|
+ return errno;
|
|
|
+@@ -130,7 +135,7 @@ copy_range_f(int argc, char **argv)
|
|
|
+ copy_dst_truncate();
|
|
|
+ }
|
|
|
+
|
|
|
+- ret = copy_file_range(fd, &src, &dst, len);
|
|
|
++ ret = copy_file_range_cmd(fd, &src, &dst, len);
|
|
|
+ close(fd);
|
|
|
+ return ret;
|
|
|
+ }
|