X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Ffile.c;h=57193dd9ee69fefdc3595a6a1df1c27c2990aabe;hb=ed6f1f04bd4d7a73ed26b3bb0d5e0df1cc0acf42;hp=cb9d5f044ab7a0459246efbec68cd416e62a1a6f;hpb=9fb4855bd6665def66d8b984331869fae57c29e0;p=bluesky.git diff --git a/bluesky/file.c b/bluesky/file.c index cb9d5f0..57193dd 100644 --- a/bluesky/file.c +++ b/bluesky/file.c @@ -231,6 +231,7 @@ void bluesky_block_fetch(BlueSkyInode *inode, BlueSkyBlock *block, 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); } /* Write the given block to cloud-backed storage and mark it clean. */ @@ -295,8 +296,10 @@ void bluesky_file_drop_cached(BlueSkyInode *inode) b->type = BLUESKY_BLOCK_REF; g_atomic_int_add(&inode->fs->cache_total, -1); g_mutex_lock(b->cloudref->lock); - bluesky_string_unref(b->cloudref->data); - b->cloudref->data = NULL; + if (b->cloudref->location_flags & CLOUDLOG_JOURNAL) { + bluesky_string_unref(b->cloudref->data); + b->cloudref->data = NULL; + } g_mutex_unlock(b->cloudref->lock); } }