076d5c95dadc62a4f1512e5aace7eef3e18e32a1
[openwrt/staging/wigyori.git] / package / utils / xfsprogs / patches / 140-copy-file-range.patch
1 From 8041435de7ed028a27ecca64302945ad455c69a6 Mon Sep 17 00:00:00 2001
2 From: "Darrick J. Wong" <darrick.wong@oracle.com>
3 Date: Mon, 5 Feb 2018 14:38:02 -0600
4 Subject: [PATCH] xfs_io: fix copy_file_range symbol name collision
5
6 glibc 2.27 has a copy_file_range wrapper, so we need to change our
7 internal function out of the way to avoid compiler warnings.
8
9 Reported-by: fredrik@crux.nu
10 Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
11 Reviewed-by: Eric Sandeen <sandeen@redhat.com>
12 Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
13 ---
14 io/copy_file_range.c | 11 ++++++++---
15 1 file changed, 8 insertions(+), 3 deletions(-)
16
17 --- a/io/copy_file_range.c
18 +++ b/io/copy_file_range.c
19 @@ -42,13 +42,18 @@ copy_range_help(void)
20 "));
21 }
22
23 +/*
24 + * Issue a raw copy_file_range syscall; for our test program we don't want the
25 + * glibc buffered copy fallback.
26 + */
27 static loff_t
28 -copy_file_range(int fd, loff_t *src, loff_t *dst, size_t len)
29 +copy_file_range_cmd(int fd, loff_t *src, loff_t *dst, size_t len)
30 {
31 loff_t ret;
32
33 do {
34 - ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst, len, 0);
35 + ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst,
36 + len, 0);
37 if (ret == -1) {
38 perror("copy_range");
39 return errno;
40 @@ -130,7 +135,7 @@ copy_range_f(int argc, char **argv)
41 copy_dst_truncate();
42 }
43
44 - ret = copy_file_range(fd, &src, &dst, len);
45 + ret = copy_file_range_cmd(fd, &src, &dst, len);
46 close(fd);
47 return ret;
48 }