We need to increase output offset in each iteration,
not decrease it as we currently do.

I guess we were lucky to finish in most cases in first
iteration, so the bug never showed. However it shows a
lot when working with big (~4GB) size data.

Link: http://lkml.kernel.org/n/tip-f4az7t2nxjbjz5tqrv83z...@git.kernel.org
Signed-off-by: Jiri Olsa <jo...@kernel.org>
---
 tools/perf/util/util.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index a789f952b3e9..443892dabedb 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -210,7 +210,7 @@ static int copyfile_offset(int ifd, loff_t off_in, int ofd, 
loff_t off_out, u64
 
                size -= ret;
                off_in += ret;
-               off_out -= ret;
+               off_out += ret;
        }
        munmap(ptr, off_in + size);
 
-- 
2.13.6

Reply via email to