X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=dss.c;h=68efc2b07cc457c4944013b6e3147fdc3f2adce1;hb=d28be18d969b6e72021e7229be49c02d3b549794;hp=9589f9dd38a18c756419e55c5f62c044aa9be2cf;hpb=50f26b35ac30d13240d501eba6dae819a9a400c7;p=dss.git diff --git a/dss.c b/dss.c index 9589f9d..68efc2b 100644 --- a/dss.c +++ b/dss.c @@ -161,7 +161,6 @@ static int64_t compute_next_snapshot_time(void) struct snapshot *s = NULL; struct snapshot_list sl; - current_snapshot_creation_time = 0; dss_get_snapshot_list(&sl); FOR_EACH_SNAPSHOT(s, i, &sl) { if (!(s->flags & SS_COMPLETE)) @@ -197,7 +196,6 @@ static int next_snapshot_is_due(void) { int64_t now = get_current_time(); - assert(snapshot_creation_status == HS_READY); if (!next_snapshot_time_is_valid()) next_snapshot_time = compute_next_snapshot_time(); if (next_snapshot_time <= now) { @@ -1120,10 +1118,14 @@ static int select_loop(void) case HS_POST_RUNNING: continue; case HS_PRE_SUCCESS: - free_rsync_argv(rsync_argv); - create_rsync_argv(&rsync_argv, ¤t_snapshot_creation_time); + if (!name_of_reference_snapshot) { + free_rsync_argv(rsync_argv); + create_rsync_argv(&rsync_argv, ¤t_snapshot_creation_time); + } /* fall through */ case HS_NEEDS_RESTART: + if (!next_snapshot_is_due()) + continue; ret = create_snapshot(rsync_argv); if (ret < 0) goto out;