- BlueSkyLogItem *log_item = bluesky_log_item_new();
- log_item->key = g_strdup(key);
- log_item->data = data;
- bluesky_string_ref(data);
- bluesky_log_item_submit(log_item, fs->log);
- log_items = g_list_prepend(log_items, log_item);
+ BlueSkyCloudLog *cloudlog = bluesky_cloudlog_new(fs);
+ cloudlog->type = LOGTYPE_INODE;
+ cloudlog->inum = inode->inum;
+ 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_REF) {
+ BlueSkyCloudID id = b->ref->id;
+ g_array_append_val(cloudlog->pointers, id);
+ }
+ }
+ }
+
+ 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);