]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
process-util: move sync() out of freeze() 21094/head
authorLennart Poettering <lennart@poettering.net>
Fri, 22 Oct 2021 14:37:10 +0000 (16:37 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 22 Oct 2021 14:37:10 +0000 (16:37 +0200)
We are using this for creating userns namespaces, and we really
shouldn't try to sync there. Moreover the use of free() in shutdown code
doesn't need it anyway, since it just sync()ed right before anyway. Only
the third user of freeze() we have actually needs the syc(), hence do it
there and nowhere else.

src/basic/process-util.c
src/core/main.c

index fce96dd5ebddfa470a785d0e3bcc0f63d92c7174..38df34e3395f020c0959fbe92dce82551d7db874 100644 (file)
@@ -1624,8 +1624,6 @@ _noreturn_ void freeze(void) {
         /* Make sure nobody waits for us on a socket anymore */
         (void) close_all_fds_full(NULL, 0, false);
 
-        sync();
-
         /* Let's not freeze right away, but keep reaping zombies. */
         for (;;) {
                 siginfo_t si = {};
index 6e01398523c47a7516346e20308b4230e5a65164..129f340f6e2786bb74b90f33bbd34b3200f986f8 100644 (file)
@@ -222,6 +222,7 @@ _noreturn_ static void freeze_or_exit_or_reboot(void) {
         }
 
         log_emergency("Freezing execution.");
+        sync();
         freeze();
 }