if (b->type == BLUESKY_BLOCK_DIRTY) {
g_error("Deleting an inode with dirty file data!");
}
- bluesky_cloudlog_unref(b->cloudref);
- bluesky_string_unref(b->data);
+ bluesky_cloudlog_unref(b->ref);
+ bluesky_string_unref(b->dirty);
}
g_array_unref(inode->blocks);
break;
GString *buf = g_string_new("");
bluesky_serialize_inode(buf, inode);
- BlueSkyRCStr *data = bluesky_string_new_from_gstring(buf);
char key[64];
sprintf(key, "inode-%016"PRIx64, inode->inum);
BlueSkyCloudLog *cloudlog = bluesky_cloudlog_new(fs);
cloudlog->type = LOGTYPE_INODE;
cloudlog->inum = inode->inum;
- cloudlog->data = data;
- bluesky_string_ref(data);
+ cloudlog->data = bluesky_string_new_from_gstring(buf);
if (inode->type == BLUESKY_REGULAR) {
for (int i = 0; i < inode->blocks->len; i++) {
BlueSkyBlock *b = &g_array_index(inode->blocks, BlueSkyBlock, i);
- if (b->type == BLUESKY_BLOCK_CACHED
- || b->type == BLUESKY_BLOCK_REF)
- {
- BlueSkyCloudID id = b->cloudref->id;
+ if (b->type == BLUESKY_BLOCK_REF) {
+ BlueSkyCloudID id = b->ref->id;
g_array_append_val(cloudlog->pointers, id);
}
}
}
- if (inode->committed_item != NULL)
- bluesky_cloudlog_unref(inode->committed_item);
+ bluesky_cloudlog_unref(inode->committed_item);
inode->committed_item = cloudlog;
bluesky_cloudlog_sync(cloudlog);
+ bluesky_cloudlog_ref(cloudlog);
log_items = g_list_prepend(log_items, cloudlog);
bluesky_cloudlog_insert(cloudlog);