S3Store cleanup.
[bluesky.git] / bluesky / inode.c
index 5e91432..44ef63c 100644 (file)
@@ -170,6 +170,10 @@ BlueSkyInode *bluesky_get_inode(BlueSkyFS *fs, uint64_t inum)
 {
     BlueSkyInode *inode = NULL;
 
+    if (inum == 0) {
+        return NULL;
+    }
+
     g_mutex_lock(fs->lock);
     inode = (BlueSkyInode *)g_hash_table_lookup(fs->inodes, &inum);
 
@@ -198,9 +202,7 @@ void bluesky_inode_flush(BlueSkyFS *fs, BlueSkyInode *inode)
 {
     GString *buf = g_string_new("");
     bluesky_serialize_inode(buf, inode);
-
-    gsize len = buf->len;
-    BlueSkyRCStr *data = bluesky_string_new(g_string_free(buf, FALSE), len);
+    BlueSkyRCStr *data = bluesky_string_new_from_gstring(buf);
 
     char key[64];
     sprintf(key, "inode-%016"PRIx64, inode->inum);
@@ -228,11 +230,9 @@ void bluesky_superblock_flush(BlueSkyFS *fs)
 {
     GString *buf = g_string_new("");
     bluesky_serialize_superblock(buf, fs);
+    BlueSkyRCStr *data = bluesky_string_new_from_gstring(buf);
 
     g_print("Syncing superblock...\n");
 
-    gsize len = buf->len;
-    BlueSkyRCStr *data = bluesky_string_new(g_string_free(buf, FALSE), len);
     bluesky_store_put(fs->store, "superblock", data);
 }
-