diff --git a/doc/ostree.repo-config.xml b/doc/ostree.repo-config.xml
index d2f65421..621879c9 100644
--- a/doc/ostree.repo-config.xml
+++ b/doc/ostree.repo-config.xml
@@ -83,6 +83,30 @@ Boston, MA 02111-1307, USA.
repo_version
Currently, this must be set to 1.
+
+
+ fsync
+ Boolean value controlling whether or not to
+ ensure files are on stable storage when performing operations
+ such as commits, pulls, and checkouts. Defaults to
+ true.
+
+ If you disable fsync, OSTree will no longer be robust
+ against kernel crashes or power loss.
+
+
+ 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.
+
+
+ For the system repository, you might choose to disable fsync
+ if you have uninterruptable power supplies and a well tested
+ kernel.
+
+
+
diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c
index 210ce366..aa2bd2df 100644
--- a/src/libostree/ostree-repo.c
+++ b/src/libostree/ostree-repo.c
@@ -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 ();