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>
|
<term><varname>repo_version</varname></term>
|
||||||
<listitem><para>Currently, this must be set to <literal>1</literal>.</para></listitem>
|
<listitem><para>Currently, this must be set to <literal>1</literal>.</para></listitem>
|
||||||
</varlistentry>
|
</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>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -682,6 +682,17 @@ ostree_repo_open (OstreeRepo *self,
|
||||||
TRUE, &self->enable_uncompressed_cache, error))
|
TRUE, &self->enable_uncompressed_cache, error))
|
||||||
goto out;
|
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 ();
|
gs_unref_object GFile *default_repo_path = get_default_repo_path ();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue