log->data = bluesky_string_new_from_gstring(buf);
bluesky_cloudlog_unref(range->serialized);
range->serialized = log;
+ bluesky_cloudlog_stats_update(log, 1);
}
BlueSkyCloudLog *bluesky_inode_map_serialize(BlueSkyFS *fs)
}
log->data = bluesky_string_new_from_gstring(buf);
+ bluesky_cloudlog_stats_update(log, 1);
if (updated) {
return log;
InodeMapEntry *entry;
entry = bluesky_inode_map_lookup(fs->inode_map, *inum, 1);
entry->inum = GUINT64_FROM_LE(*inum);
+ bluesky_cloudlog_unref_delayed(entry->item);
entry->item = g_array_index(section->links,
BlueSkyCloudLog *, j);
bluesky_cloudlog_ref(entry->item);
return FALSE;
}
+ last = bluesky_string_dup(last);
+ bluesky_cloudlog_decrypt(last->data, last->len, fs->keys);
+
/* Scan through the contents of the last log segment to find a checkpoint
* record. We need to do a linear scan since at this point we don't have a
* direct pointer; once we have the last commit record then all other data
len -= size;
}
+ if (checkpoint_size == 0) {
+ g_error("Unable to locate checkpoint record!\n");
+ }
+
g_print("Found checkpoint record at %zd (size %zd)\n",
checkpoint - last->data, checkpoint_size);
commit->location.offset = checkpoint - last->data;
commit->location.size = checkpoint_size;
g_mutex_unlock(commit->lock);
+ bluesky_cloudlog_stats_update(commit, 1);
bluesky_inode_map_deserialize(fs, commit);
bluesky_cloudlog_unref(commit);