aboutsummaryrefslogtreecommitdiff
path: root/reftable/reftable-writer.h
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2026-04-02 09:31:15 +0200
committerJunio C Hamano <gitster@pobox.com>2026-04-02 10:45:43 -0700
commitb45ea595e6f6b03a749abc2c8e508504429a4cf3 (patch)
tree0d1402643c17e23d27e7d17334505f32de33e037 /reftable/reftable-writer.h
parent34c17b840d5bdb8060ef6309aee04f919616c9de (diff)
downloadgit-b45ea595e6f6b03a749abc2c8e508504429a4cf3.tar.xz
reftable/stack: provide fsync(3p) via system header
Users of the reftable library are expected to provide their own function callback in cases they want to sync(3p) data to disk via the reftable write options. But if no such function was provided we end up calling fsync(3p) directly, which may not even be available on some systems. While dropping the explicit call to fsync(3p) would work, it would lead to an unsafe default behaviour where a project may have forgotten to set up the callback function, and that could lead to potential data loss. So this is not a great solution. Instead, drop the callback function and make it mandatory for the project to define fsync(3p). In the case of Git, we can then easily inject our custom implementation via the "reftable-system.h" header so that we continue to use `fsync_component()`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reftable/reftable-writer.h')
-rw-r--r--reftable/reftable-writer.h6
1 files changed, 0 insertions, 6 deletions
diff --git a/reftable/reftable-writer.h b/reftable/reftable-writer.h
index 065dd93dc6..a66db415c8 100644
--- a/reftable/reftable-writer.h
+++ b/reftable/reftable-writer.h
@@ -62,12 +62,6 @@ struct reftable_write_options {
long lock_timeout_ms;
/*
- * Optional callback used to fsync files to disk. Falls back to using
- * fsync(3P) when unset.
- */
- int (*fsync)(int fd);
-
- /*
* Callback function to execute whenever the stack is being reloaded.
* This can be used e.g. to discard cached information that relies on
* the old stack's data. The payload data will be passed as argument to