- bluesky_log_item_submit(log_item, fs->log);
- bluesky_log_item_finish(log_item);
+
+ 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 = bluesky_cloudlog_id_from_string(b->ref);
+ g_array_append_val(cloudlog->pointers, id);
+ }
+ }
+ }
+
+ log_items = g_list_prepend(log_items, bluesky_cloudlog_sync(cloudlog));
+
+ bluesky_cloudlog_insert(cloudlog);
+
+ /* Wait for all log items to be committed to disk. */
+ while (log_items != NULL) {
+ BlueSkyLogItem *log_item = (BlueSkyLogItem *)log_items->data;
+ bluesky_log_item_finish(log_item);
+ log_items = g_list_delete_link(log_items, log_items);
+ }