chiark / gitweb /
machine: minor modernizations
authorLennart Poettering <lennart@poettering.net>
Thu, 12 Jun 2014 21:06:56 +0000 (23:06 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 12 Jun 2014 21:07:33 +0000 (23:07 +0200)
src/machine/machine.c

index a49cf81906039799b949ed61e76c7a4c455eac42..0b0d45bb266594410f7cf6c7b04be6e7118e6646 100644 (file)
@@ -176,12 +176,13 @@ int machine_save(Machine *m) {
                         m->timestamp.realtime,
                         m->timestamp.monotonic);
 
-        fflush(f);
+        r = fflush_and_check(f);
+        if (r < 0)
+                goto finish;
 
-        if (ferror(f) || rename(temp_path, m->state_file) < 0) {
+        if (rename(temp_path, m->state_file) < 0) {
                 r = -errno;
-                unlink(m->state_file);
-                unlink(temp_path);
+                goto finish;
         }
 
         if (m->unit) {
@@ -195,8 +196,12 @@ int machine_save(Machine *m) {
         }
 
 finish:
-        if (r < 0)
+        if (r < 0) {
+                if (temp_path)
+                        unlink(temp_path);
+
                 log_error("Failed to save machine data %s: %s", m->state_file, strerror(-r));
+        }
 
         return r;
 }