systemd-boot-builder: add missing fsync in atomic writes

write(2) and close(2) doesn't ensure the file content actually got synched, so let's also fsync before doing the rename
This commit is contained in:
Jörg Thalheim 2023-10-10 10:53:58 +02:00 committed by Jörg Thalheim
parent 8335022649
commit b7057368c8

View file

@ -66,6 +66,8 @@ def write_loader_conf(profile: str | None, generation: int, specialisation: str
if not @editor@:
f.write("editor 0\n")
f.write("console-mode @consoleMode@\n")
f.flush()
os.fsync(f.fileno())
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
@ -143,6 +145,8 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
description=describe_generation(profile, generation, specialisation)))
if machine_id is not None:
f.write("machine-id %s\n" % machine_id)
f.flush()
os.fsync(f.fileno())
os.rename(tmp_path, entry_file)