qfile-unpacker: do not call fdatasync() at each file (#1257)

POSIX  requires  that  a  read(2)  which  can be proved to occur after a
write() has returned returns the new data.
We want here only that other processes in the same VM will see the
file either fully written, or not see it at all. So ensuring that
linkat(2) is called after write is completed should be enough.

Fixes QubesOS/qubes-issues#1257
This commit is contained in:
Marek Marczykowski-Górecki 2015-10-09 03:13:19 +02:00
parent e745b87939
commit c1d42f1602
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -137,7 +137,6 @@ void process_one_file_reg(struct file_header *untrusted_hdr,
else
do_exit(errno, untrusted_name);
}
fdatasync(fdout);
if (use_tmpfile) {
char fd_str[7];
snprintf(fd_str, sizeof(fd_str), "%d", fdout);