Add --disable-fsync option to both commit and pull (non-local)
On some storage configurations, fsync() can be extremely expensive. Developers and users with slow hard drives may want the ability to opt for speed over safety. Furthermore, many production servers have UPS and stable kernels, and the risk of not fsync'ing in that scenario is fairly low. These users should also be able to opt out.
This commit is contained in:
parent
b4d21e9406
commit
f22fa92aef
|
|
@ -46,6 +46,7 @@ static char **opt_key_ids;
|
|||
static char *opt_gpg_homedir;
|
||||
#endif
|
||||
static gboolean opt_generate_sizes;
|
||||
static gboolean opt_disable_fsync;
|
||||
|
||||
static GOptionEntry options[] = {
|
||||
{ "subject", 's', 0, G_OPTION_ARG_STRING, &opt_subject, "One line subject", "subject" },
|
||||
|
|
@ -67,6 +68,7 @@ static GOptionEntry options[] = {
|
|||
{ "gpg-homedir", 0, 0, G_OPTION_ARG_STRING, &opt_gpg_homedir, "GPG Homedir to use when looking for keyrings", "homedir"},
|
||||
#endif
|
||||
{ "generate-sizes", 0, 0, G_OPTION_ARG_NONE, &opt_generate_sizes, "Generate size information along with commit metadata", NULL },
|
||||
{ "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
@ -326,6 +328,8 @@ ostree_builtin_commit (int argc, char **argv, OstreeRepo *repo, GCancellable *ca
|
|||
flags |= OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS;
|
||||
if (opt_generate_sizes)
|
||||
flags |= OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES;
|
||||
if (opt_disable_fsync)
|
||||
ostree_repo_set_disable_fsync (repo, TRUE);
|
||||
|
||||
if (flags != 0
|
||||
|| opt_owner_uid >= 0
|
||||
|
|
|
|||
|
|
@ -27,7 +27,10 @@
|
|||
#include "ostree.h"
|
||||
#include "otutil.h"
|
||||
|
||||
static gboolean opt_disable_fsync;
|
||||
|
||||
static GOptionEntry options[] = {
|
||||
{ "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
@ -54,6 +57,8 @@ ostree_builtin_pull (int argc, char **argv, OstreeRepo *repo, GCancellable *canc
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (opt_disable_fsync)
|
||||
ostree_repo_set_disable_fsync (repo, TRUE);
|
||||
|
||||
if (strchr (argv[1], ':') == NULL)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue