if (last_segment == NULL)
return NULL;
- g_print("Last cloud log segment: %s\n", last_segment);
+ g_print("Last cloud log segment: %s (processed up to %d)\n",
+ last_segment, fs->log_state->latest_cleaner_seq_seen);
int seq = atoi(last_segment + 13);
g_free(last_segment);
BlueSkyCleanerItem *checkpoint = bluesky_cleaner_deserialize(data);
checkpoint->location.directory = BLUESKY_CLOUD_DIR_CLEANER;
- checkpoint->location.directory = seq;
+ checkpoint->location.sequence = seq;
bluesky_string_unref(data);
return checkpoint;
return;
}
+ if (checkpoint->type != LOGTYPE_CHECKPOINT) {
+ g_warning("Last cleaner object not a checkpoint; cleaning probably in progress.");
+ bluesky_cleaner_item_free(checkpoint);
+ return;
+ }
+
/* Iterate over each of the inode map sections in the checkpoint */
for (int i = 0; i < checkpoint->links->len; i++) {
BlueSkyCleanerLink *link = &g_array_index(checkpoint->links,