X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Ffile.c;h=94677f6520c5b0f314375500565d4f1d0ce8a306;hb=4a207da5eef9f87a702a011d003d5ad17b651085;hp=d3ba5f8abef9c633140ebbc9efdc4d4610ec56ae;hpb=3380ff6d419c7d1370c95cf476520ed5398e5b6d;p=bluesky.git diff --git a/bluesky/file.c b/bluesky/file.c index d3ba5f8..94677f6 100644 --- a/bluesky/file.c +++ b/bluesky/file.c @@ -44,8 +44,6 @@ void bluesky_block_touch(BlueSkyInode *inode, uint64_t i) break; } - if (block->type != BLUESKY_BLOCK_REF && block->type != BLUESKY_BLOCK_DIRTY) - g_atomic_int_add(&inode->fs->cache_total, 1); if (block->type != BLUESKY_BLOCK_DIRTY) g_atomic_int_add(&inode->fs->cache_dirty, 1); @@ -97,9 +95,6 @@ void bluesky_file_truncate(BlueSkyInode *inode, uint64_t size) /* Delete blocks from a file. Must reclaim memory. */ for (guint i = inode->blocks->len; i < blocks; i++) { BlueSkyBlock *b = &g_array_index(inode->blocks, BlueSkyBlock, i); - if (b->type == BLUESKY_BLOCK_REF - || b->type == BLUESKY_BLOCK_DIRTY) - g_atomic_int_add(&inode->fs->cache_total, -1); if (b->type == BLUESKY_BLOCK_DIRTY) g_atomic_int_add(&inode->fs->cache_dirty, -1); bluesky_string_unref(b->dirty); @@ -233,7 +228,6 @@ void bluesky_block_fetch(BlueSkyInode *inode, BlueSkyBlock *block, bluesky_cloudlog_fetch(block->ref); g_mutex_unlock(block->ref->lock); block->type = BLUESKY_BLOCK_REF; - g_atomic_int_add(&inode->fs->cache_total, 1); //FIXME } /* Write the given block to cloud-backed storage and mark it clean. */ @@ -251,6 +245,7 @@ void bluesky_block_flush(BlueSkyInode *inode, BlueSkyBlock *block, cloudlog->type = LOGTYPE_DATA; cloudlog->inum = inode->inum; cloudlog->data = block->dirty; // String ownership is transferred + bluesky_cloudlog_stats_update(cloudlog, 1); bluesky_cloudlog_sync(cloudlog); bluesky_cloudlog_ref(cloudlog); // Reference for log_items list *log_items = g_list_prepend(*log_items, cloudlog); @@ -287,11 +282,12 @@ void bluesky_file_drop_cached(BlueSkyInode *inode) && g_atomic_int_get(&b->ref->data_lock_count) == 0 && (b->ref->location_flags != 0)) { + bluesky_cloudlog_stats_update(b->ref, -1); bluesky_string_unref(b->ref->data); b->ref->data = NULL; + bluesky_cloudlog_stats_update(b->ref, 1); } g_mutex_unlock(b->ref->lock); - g_atomic_int_add(&inode->fs->cache_total, -1); } } }