+static int rename_resume_snap(int64_t creation_time)
+{
+ struct snapshot_list sl = {.num_snapshots = 0};
+ struct snapshot *s;
+ char *new_name = incomplete_name(creation_time);
+ int ret;
+
+ ret = 0;
+ if (conf.no_resume_given)
+ goto out;
+ dss_get_snapshot_list(&sl);
+ s = get_newest_snapshot(&sl);
+ if (!s)
+ goto out;
+ if ((s->flags & SS_COMPLETE) != 0) /* complete */
+ goto out;
+ DSS_INFO_LOG("resuming: reusing %s as destination dir\n", s->name);
+ ret = dss_rename(s->name, new_name);
+out:
+ if (ret >= 0)
+ DSS_NOTICE_LOG("creating new snapshot %s\n", new_name);
+ free(new_name);
+ free_snapshot_list(&sl);
+ return ret;
+}
+