Basic filesystem journaling.
[bluesky.git] / bluesky / bluesky.h
index ff2bf23..beec075 100644 (file)
@@ -93,6 +93,9 @@ BlueSkyRCStr *bluesky_crypt_decrypt(BlueSkyRCStr *in, const uint8_t *key);
 struct _BlueSkyStore;
 typedef struct _BlueSkyStore BlueSkyStore;
 
+struct _BlueSkyLog;
+typedef struct _BlueSkyLog BlueSkyLog;
+
 void bluesky_store_init();
 BlueSkyStore *bluesky_store_new(const gchar *type);
 void bluesky_store_free(BlueSkyStore *store);
@@ -126,6 +129,7 @@ typedef struct {
     uint64_t next_inum;         /* Next available inode for allocation */
 
     BlueSkyStore *store;
+    BlueSkyLog *log;
 
     /* Accounting for memory used for caches.  Space is measured in blocks, not
      * bytes.  We track both total data in the caches and dirty data (total
@@ -264,6 +268,8 @@ typedef struct {
 BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store);
 void bluesky_superblock_flush(BlueSkyFS *fs);
 
+gboolean bluesky_inode_is_ready(BlueSkyInode *inode);
+
 int64_t bluesky_get_current_time();
 void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime);
 uint64_t bluesky_fs_alloc_inode(BlueSkyFS *fs);
@@ -298,6 +304,7 @@ gint bluesky_dirent_compare(gconstpointer a, gconstpointer b,
 void bluesky_flushd_invoke(BlueSkyFS *fs);
 void bluesky_flushd_invoke_conditional(BlueSkyFS *fs);
 void bluesky_inode_do_sync(BlueSkyInode *inode);
+void bluesky_flushd_thread_launch(BlueSkyFS *fs);
 
 void bluesky_debug_dump(BlueSkyFS *fs);