- BlueSkyStoreAsync *async = bluesky_store_async_new(fs->store);
- async->op = STORE_OP_GET;
- async->key = g_strdup(block->ref);
- bluesky_store_async_add_notifier(async, (GFunc)block_fetch_completion, block);
- bluesky_store_async_submit(async);
-
- if (barrier != NULL)
- bluesky_store_add_barrier(barrier, async);
- else
- bluesky_store_async_wait(async);
-
- bluesky_store_async_unref(async);
- g_atomic_int_add(&fs->cache_total, 1);
+ g_mutex_lock(block->cloudref->lock);
+ bluesky_cloudlog_fetch(block->cloudref);
+ block->data = block->cloudref->data;
+ bluesky_string_ref(block->data);
+ g_mutex_unlock(block->cloudref->lock);
+ block->type = BLUESKY_BLOCK_CACHED;
+ g_atomic_int_add(&inode->fs->cache_total, 1);