Make sure configuration is saved to storage device

Config file is written to a temp file and then it is renamed to the
original config file. However, it is possible that the rename operation
will be commited to storage while file data will be still in cache
causing original config file to be empty or partially written in case of
a system reboot without a clean shutdown. Make this less likely to occur
by forcing the data to be written to the storage device before renaming
the file.

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
This commit is contained in:
Mitchell Wills 2015-08-24 17:24:30 -07:00 committed by Jouni Malinen
parent 6aaa661af1
commit a218e1ded4
6 changed files with 47 additions and 0 deletions

View file

@ -246,6 +246,13 @@ char * os_readfile(const char *name, size_t *len);
*/
int os_file_exists(const char *fname);
/**
* os_fdatasync - Sync a file's (for a given stream) state with storage device
* @stream: the stream to be flushed
* Returns: 0 if the operation succeeded or -1 on failure
*/
int os_fdatasync(FILE *stream);
/**
* os_zalloc - Allocate and zero memory
* @size: Number of bytes to allocate