fileio: sync directory after rename, too
authorLennart Poettering <lennart@poettering.net>
Wed, 20 May 2020 15:14:48 +0000 (17:14 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 20 Sep 2020 08:57:26 +0000 (10:57 +0200)
(cherry picked from commit 5b3f4a20ea164bba1f7bf65814c4236a18f9beb5)

src/basic/fileio.c

index de5bd78b5944c7c66ddac68294788011b033aa7f..1239b5cc57c8b1e234a37fe69006a94b714ebc6a 100644 (file)
@@ -164,6 +164,13 @@ static int write_string_file_atomic(
                 goto fail;
         }
 
+        if (FLAGS_SET(flags, WRITE_STRING_FILE_SYNC)) {
+                /* Sync the rename, too */
+                r = fsync_directory_of_file(fileno(f));
+                if (r < 0)
+                        return r;
+        }
+
         return 0;
 
 fail: