X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Finode.c;h=3e8d686f2d46979a3479d38cacc5a8e4e008d42c;hb=810fdc7bdf0cd13aaa7c88d3c5af5aae24e77254;hp=e53c602781ffff51d962ee89014e05838d04298d;hpb=7298b7a416aed5be1b82b54015c6944b9379eee6;p=bluesky.git diff --git a/bluesky/inode.c b/bluesky/inode.c index e53c602..3e8d686 100644 --- a/bluesky/inode.c +++ b/bluesky/inode.c @@ -86,6 +86,8 @@ BlueSkyFS *bluesky_new_fs(gchar *name) fs->next_inum = BLUESKY_ROOT_INUM + 1; fs->store = bluesky_store_new("file"); fs->flushd_lock = g_mutex_new(); + fs->locations = g_hash_table_new(bluesky_cloudlog_hash, + bluesky_cloudlog_equal); return fs; } @@ -313,16 +315,19 @@ void bluesky_inode_start_sync(BlueSkyInode *inode, BlueSkyStoreAsync *barrier) char key[64]; sprintf(key, "inode-%016"PRIx64, inode->inum); - BlueSkyLogItem *log_item = bluesky_log_item_new(); - log_item->key = g_strdup(key); - log_item->data = data; + BlueSkyCloudLog *cloudlog = bluesky_cloudlog_new(fs); + cloudlog->type = LOGTYPE_DATA; + cloudlog->inum = inode->inum; + cloudlog->data = data; bluesky_string_ref(data); - bluesky_log_item_submit(log_item, fs->log); - log_items = g_list_prepend(log_items, log_item); + + 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) { - log_item = (BlueSkyLogItem *)log_items->data; + BlueSkyLogItem *log_item = (BlueSkyLogItem *)log_items->data; bluesky_log_item_finish(log_item); log_items = g_list_delete_link(log_items, log_items); }