Skip to content

efivarfs: fsync file variable store on write#304

Open
balajiselvanathan wants to merge 1 commit into
rhboot:mainfrom
balajiselvanathan:efivarfs-fsync-on-write
Open

efivarfs: fsync file variable store on write#304
balajiselvanathan wants to merge 1 commit into
rhboot:mainfrom
balajiselvanathan:efivarfs-fsync-on-write

Conversation

@balajiselvanathan

Copy link
Copy Markdown

write_file() persists the RAM-backed EFI variable store to a file on the ESP via buffered fopen()/fwrite()/fclose(), with no explicit flush to storage. The data can remain dirty in the page cache and be lost on a power loss before the kernel's periodic writeback runs, even though efi_update_var_file() is invoked synchronously from efivarfs_set_variable() and efivarfs_del_variable().

Add an explicit fflush()+fsync() after the write loop so the variable store file is durable on disk before write_file() returns.

write_file() persists the RAM-backed EFI variable store to a file on
the ESP via buffered fopen()/fwrite()/fclose(), with no explicit flush
to storage. The data can remain dirty in the page cache and be lost on
a power loss before the kernel's periodic writeback runs, even though
efi_update_var_file() is invoked synchronously from
efivarfs_set_variable() and efivarfs_del_variable().

Add an explicit fflush()+fsync() after the write loop so the variable
store file is durable on disk before write_file() returns.

Signed-off-by: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant