repo: Support fsync=false configuration
See rationale in the updated docs. Basically developer use cases as well as UPS-backed servers.
This commit is contained in:
parent
ef00572999
commit
51bf1fab0f
|
|
@ -83,6 +83,30 @@ Boston, MA 02111-1307, USA.
|
|||
<term><varname>repo_version</varname></term>
|
||||
<listitem><para>Currently, this must be set to <literal>1</literal>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>fsync</varname></term>
|
||||
<listitem><para>Boolean value controlling whether or not to
|
||||
ensure files are on stable storage when performing operations
|
||||
such as commits, pulls, and checkouts. Defaults to
|
||||
<literal>true</literal>.</para>
|
||||
<para>
|
||||
If you disable fsync, OSTree will no longer be robust
|
||||
against kernel crashes or power loss.
|
||||
</para>
|
||||
<para>
|
||||
You might choose to disable this for local development
|
||||
repositories, under the assumption they can be recreated from
|
||||
source. Similarly, you could disable for a mirror where you could
|
||||
re-pull.
|
||||
</para>
|
||||
<para>
|
||||
For the system repository, you might choose to disable fsync
|
||||
if you have uninterruptable power supplies and a well tested
|
||||
kernel.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
|
|
|||
|
|
@ -682,6 +682,17 @@ ostree_repo_open (OstreeRepo *self,
|
|||
TRUE, &self->enable_uncompressed_cache, error))
|
||||
goto out;
|
||||
|
||||
{
|
||||
gboolean do_fsync;
|
||||
|
||||
if (!ot_keyfile_get_boolean_with_default (self->config, "core", "fsync",
|
||||
TRUE, &do_fsync, error))
|
||||
goto out;
|
||||
|
||||
if (!do_fsync)
|
||||
ostree_repo_set_disable_fsync (self, TRUE);
|
||||
}
|
||||
|
||||
{
|
||||
gs_unref_object GFile *default_repo_path = get_default_repo_path ();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue