Merge branch 'ns/core-fsyncmethod'
Replace core.fsyncObjectFiles with two new configuration variables, core.fsync and core.fsyncMethod. * ns/core-fsyncmethod: core.fsync: documentation and user-friendly aggregate options core.fsync: new option to harden the index core.fsync: add configuration parsing core.fsync: introduce granular fsync control infrastructure core.fsyncmethod: add writeout-only mode wrapper: make inclusion of Windows csprng header tightly scoped
This commit is contained in:
@ -1199,16 +1199,26 @@ static void write_pack_file(void)
|
||||
display_progress(progress_state, written);
|
||||
}
|
||||
|
||||
/*
|
||||
* Did we write the wrong # entries in the header?
|
||||
* If so, rewrite it like in fast-import
|
||||
*/
|
||||
if (pack_to_stdout) {
|
||||
finalize_hashfile(f, hash, CSUM_HASH_IN_STREAM | CSUM_CLOSE);
|
||||
/*
|
||||
* We never fsync when writing to stdout since we may
|
||||
* not be writing to an actual pack file. For instance,
|
||||
* the upload-pack code passes a pipe here. Calling
|
||||
* fsync on a pipe results in unnecessary
|
||||
* synchronization with the reader on some platforms.
|
||||
*/
|
||||
finalize_hashfile(f, hash, FSYNC_COMPONENT_NONE,
|
||||
CSUM_HASH_IN_STREAM | CSUM_CLOSE);
|
||||
} else if (nr_written == nr_remaining) {
|
||||
finalize_hashfile(f, hash, CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
|
||||
finalize_hashfile(f, hash, FSYNC_COMPONENT_PACK,
|
||||
CSUM_HASH_IN_STREAM | CSUM_FSYNC | CSUM_CLOSE);
|
||||
} else {
|
||||
int fd = finalize_hashfile(f, hash, 0);
|
||||
/*
|
||||
* If we wrote the wrong number of entries in the
|
||||
* header, rewrite it like in fast-import.
|
||||
*/
|
||||
|
||||
int fd = finalize_hashfile(f, hash, FSYNC_COMPONENT_PACK, 0);
|
||||
fixup_pack_header_footer(fd, hash, pack_tmp_name,
|
||||
nr_written, hash, offset);
|
||||
close(fd);
|
||||
|
Reference in New Issue
Block a user