From dba0dc1999bb1e8bfe64607e2a9385cda361fcb7 Mon Sep 17 00:00:00 2001
From: Rostislav Skudnov <rostislav@tuxera.com>
Date: Thu, 16 Mar 2017 20:54:35 +0100
Subject: dd: call fsync() only once before exiting if conv=fsync is specified

Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 coreutils/dd.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/coreutils/dd.c b/coreutils/dd.c
index 5e68087fc..7d980f1c4 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -532,11 +532,11 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
 			if (write_and_stats(ibuf, n, obs, outfile))
 				goto out_status;
 		}
+	}
 
-		if (G.flags & FLAG_FSYNC) {
-			if (fsync(ofd) < 0)
-				goto die_outfile;
-		}
+	if (G.flags & FLAG_FSYNC) {
+		if (fsync(ofd) < 0)
+			goto die_outfile;
 	}
 
 	if (ENABLE_FEATURE_DD_IBS_OBS && oc) {
-- 
cgit v1.2.3