Re: [PATCH 8/8] core.fsync: new option to harden packed references
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 10, 2022, 18:28 UTC
- Message-ID
- <xmqqzglxek5y.fsf@gitster.g>
- In-Reply-To
- <3b81d8f5aeffb73a32b0bff0da947f023a3df517.1646905589.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 14 quoted lines
> diff --git a/refs/packed-backend.c b/refs/packed-backend.c
> index 27dd8c3922..32d6635969 100644
> --- a/refs/packed-backend.c
> +++ b/refs/packed-backend.c
> @@ -1262,7 +1262,8 @@ static int write_with_updates(struct packed_ref_store *refs,
> goto error;
> }
>
> - if (close_tempfile_gently(refs->tempfile)) {
> + if (fsync_component(FSYNC_COMPONENT_PACKED_REFS, get_tempfile_fd(refs->tempfile)) ||
> + close_tempfile_gently(refs->tempfile)) {
> strbuf_addf(err, "error closing file %s: %s",
> get_tempfile_path(refs->tempfile),
> strerror(errno));I do not necessarily agree with the organization to have it as a component that is separate from other ref backends, but it is very pleasing to see that there is only one fsync necessary for the packed backend.
Nice.