-
-void bluesky_cloudlog_write_log(BlueSkyFS *fs)
-{
- BlueSkyCloudLogState *state = fs->log_state;
- if (state->data == NULL)
- state->data = g_string_new("");
-
- g_mutex_lock(fs->lock);
- g_hash_table_foreach(fs->locations, find_inodes, state);
- g_mutex_unlock(fs->lock);
-
- while (state->inode_list != NULL) {
- BlueSkyCloudLog *log = (BlueSkyCloudLog *)state->inode_list->data;
- bluesky_cloudlog_serialize(log, fs);
- bluesky_cloudlog_unref(log);
- state->inode_list = g_list_delete_link(state->inode_list,
- state->inode_list);
-
- if (state->data->len > CLOUDLOG_SEGMENT_SIZE)
- bluesky_cloudlog_flush(fs);
- }
-
- bluesky_cloudlog_flush(fs);
-}