From: John L. Hammond Date: Mon, 14 Dec 2020 18:36:32 +0000 (-0600) Subject: LU-14208 utils: remove copy_file_range() usage from copytool X-Git-Tag: 2.14.0-RC1~65 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=8294b497f27f66c0f388889ae6d8b29d916a17b4;p=fs%2Flustre-release.git 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 --- 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;