X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fcloudlog.c;h=6b802331da4dc8c6db9c47ace825e64cb5614f35;hb=f2586554fd55cd3cc1be65ac33d1122d00372133;hp=0d91e0dcb43bdaf456ec56367d0a9413fb752567;hpb=ac5113f4988176ca8b4f8f575df82ba7d05495cd;p=bluesky.git diff --git a/bluesky/cloudlog.c b/bluesky/cloudlog.c index 0d91e0d..6b80233 100644 --- a/bluesky/cloudlog.c +++ b/bluesky/cloudlog.c @@ -132,6 +132,7 @@ void bluesky_cloudlog_unref(BlueSkyCloudLog *log) g_hash_table_remove(fs->locations, &log->id); g_mutex_unlock(fs->lock); + log->type = LOGTYPE_INVALID; g_mutex_free(log->lock); g_cond_free(log->cond); g_array_unref(log->pointers); @@ -190,6 +191,7 @@ BlueSkyCloudPointer bluesky_cloudlog_serialize(BlueSkyCloudLog *log, BlueSkyCloudLog *log2 = (BlueSkyCloudLog *)g_hash_table_lookup(log->fs->locations, &id); // TODO: refcount + bluesky_cloudlog_fetch(log2); g_assert(log2 != NULL); bluesky_cloudlog_ref(log2); g_mutex_unlock(log->fs->lock); @@ -247,6 +249,7 @@ void bluesky_cloudlog_write_log(BlueSkyFS *fs) while (state->inode_list != NULL) { BlueSkyCloudLog *log = (BlueSkyCloudLog *)state->inode_list->data; bluesky_cloudlog_serialize(log, state); + bluesky_cloudlog_unref(log); state->inode_list = g_list_delete_link(state->inode_list, state->inode_list); }