From 8294b497f27f66c0f388889ae6d8b29d916a17b4 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Mon, 14 Dec 2020 12:36:32 -0600 Subject: [PATCH] LU-14208 utils: remove copy_file_range() usage from copytool Revert the lhsmtool_posix part of "LU-11621 utils: optimize lhsmtool_posix with copy_file_range()". This is failing sanity-hsm test_55() on RHEL 8.3. Test-Parameters: clientdistro=el8.3 serverdistro=el8.3 testlist=sanity-hsm Signed-off-by: John L. Hammond Change-Id: I0b410c2bb5f56a32c10f0ec39190735908cbb556 Reviewed-on: https://review.whamcloud.com/40966 Reviewed-by: James Simmons Tested-by: jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo --- lustre/utils/lhsmtool_posix.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/lustre/utils/lhsmtool_posix.c b/lustre/utils/lhsmtool_posix.c index 14aa197..4f933b4 100644 --- a/lustre/utils/lhsmtool_posix.c +++ b/lustre/utils/lhsmtool_posix.c @@ -59,7 +59,6 @@ #include #include #include -#include "lstddef.h" /* Progress reporting period */ #define REPORT_INTERVAL_DEFAULT 30 @@ -657,27 +656,6 @@ static int ct_copy_data(struct hsm_copyaction_private *hcp, const char *src, int chunk = (length - write_total > opt.o_chunk_size) ? opt.o_chunk_size : length - write_total; - /* Try the accelerated copy path first. Once LU-10180 lands - * we should deal with holes. - */ - wsize = copy_file_range(src_fd, NULL, dst_fd, NULL, - chunk, 0); - if (wsize != -1) - goto fini_fastcopy; - rc = -errno; - /* Before Linux kernel 5.3 copy_file_range only supported - * file copies between filesystems of the same type. In - * that case copy_file_range() will return -EXDEV. - */ - if (rc != -EXDEV && rc != -ENOSYS) { - CT_ERROR(rc, "copy_file_range failed for '%s' to '%s'", - src, dst); - break; - } - - /* copy_file_range is not avalible or failed - * so use what works. - */ rsize = pread(src_fd, buf, chunk, offset); if (rsize == 0) /* EOF */ @@ -695,7 +673,7 @@ static int ct_copy_data(struct hsm_copyaction_private *hcp, const char *src, CT_ERROR(rc, "cannot write to '%s'", dst); break; } -fini_fastcopy: + write_total += wsize; offset += wsize; -- 1.8.3.1