From 48534b0c580816c5420556e658cb5073f9fab2ad Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Thu, 2 Jan 2020 20:53:09 +0100 Subject: [PATCH] Synchronize the file's data on disk while copying --- src/copy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/copy.c b/src/copy.c index 3049e11..5e78baa 100644 --- a/src/copy.c +++ b/src/copy.c @@ -624,6 +624,8 @@ static gboolean _channel_out(Copy * copy, GIOChannel * source) if(g_io_channel_write_chars(source, copy->buf, copy->buf_cnt, &written, &error) == G_IO_STATUS_ERROR) return _channel_out_error(copy, source, error); + if(fsync(g_io_channel_get_fd(source)) != 0) + _copy_error(NULL, "fsync", -errno); if(copy->buf_cnt == sizeof(copy->buf)) g_idle_add(_regular_idle_in, copy); /* read again */ copy->buf_cnt -= written;