Add case-insensitive lookup support to BlueSky core.
[bluesky.git] / bluesky / inode.c
index 59b915a..b62870d 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <stdio.h>
 #include <stdint.h>
+#include <inttypes.h>
 #include <glib.h>
 #include <string.h>
 
@@ -81,7 +82,7 @@ void bluesky_inode_ref(BlueSkyInode *inode)
 void bluesky_inode_unref(BlueSkyInode *inode)
 {
     if (g_atomic_int_dec_and_test(&inode->refcount)) {
-        g_error("Reference count for inode %lld dropped to zero!\n",
+        g_error("Reference count for inode %"PRIu64" dropped to zero!\n",
                 inode->inum);
     }
 }
@@ -116,6 +117,7 @@ BlueSkyInode *bluesky_new_inode(uint64_t inum, BlueSkyFS *fs,
     case BLUESKY_DIRECTORY:
         i->dirents = g_sequence_new(bluesky_dirent_destroy);
         i->dirhash = g_hash_table_new(g_str_hash, g_str_equal);
+        i->dirhash_folded = g_hash_table_new(g_str_hash, g_str_equal);
         break;
     case BLUESKY_BLOCK:
     case BLUESKY_CHARACTER:
@@ -169,7 +171,7 @@ void bluesky_inode_flush(BlueSkyFS *fs, BlueSkyInode *inode)
     BlueSkyRCStr *data = bluesky_string_new(g_string_free(buf, FALSE), len);
 
     char key[64];
-    sprintf(key, "inode-%016llx", inode->inum);
+    sprintf(key, "inode-%016"PRIx64, inode->inum);
 
     bluesky_store_put(fs->store, key, data);
 }
@@ -178,7 +180,7 @@ void bluesky_inode_flush(BlueSkyFS *fs, BlueSkyInode *inode)
 void bluesky_inode_fetch(BlueSkyFS *fs, uint64_t inum)
 {
     char key[64];
-    sprintf(key, "inode-%016llx", inum);
+    sprintf(key, "inode-%016"PRIx64, inum);
     BlueSkyRCStr *data = bluesky_store_get(fs->store, key);
     if (data == NULL)
         return;
@@ -186,6 +188,6 @@ void bluesky_inode_fetch(BlueSkyFS *fs, uint64_t inum)
     BlueSkyInode *inode = bluesky_deserialize_inode(fs, data->data);
     if (inode != NULL) {
         bluesky_insert_inode(fs, inode);
-        g_print("Loaded inode %lld\n", (long long)inum);
+        g_print("Loaded inode %"PRIu64"\n", inum);
     }
 }