Fix up reference counting for cloud log items.
[bluesky.git] / bluesky / file.c
index 57193dd..b329531 100644 (file)
@@ -50,8 +50,7 @@ void bluesky_block_touch(BlueSkyInode *inode, uint64_t i)
         g_atomic_int_add(&inode->fs->cache_dirty, 1);
 
     block->type = BLUESKY_BLOCK_DIRTY;
-    if (block->cloudref != NULL)
-        bluesky_cloudlog_unref(block->cloudref);
+    bluesky_cloudlog_unref(block->cloudref);
     block->cloudref = NULL;
 }
 
@@ -243,8 +242,7 @@ void bluesky_block_flush(BlueSkyInode *inode, BlueSkyBlock *block,
     if (block->type != BLUESKY_BLOCK_DIRTY)
         return;
 
-    if (block->cloudref != NULL)
-        bluesky_cloudlog_unref(block->cloudref);
+    bluesky_cloudlog_unref(block->cloudref);
 
     BlueSkyRCStr *data = block->data;
 
@@ -258,7 +256,6 @@ void bluesky_block_flush(BlueSkyInode *inode, BlueSkyBlock *block,
     bluesky_cloudlog_insert(cloudlog);
 
     block->cloudref = cloudlog;
-    bluesky_cloudlog_ref(cloudlog);
 
     block->type = BLUESKY_BLOCK_CACHED;
     g_atomic_int_add(&fs->cache_dirty, -1);