Allow batched log writes when writing dirty inodes.
[bluesky.git] / bluesky / bluesky.h
index 29d9a62..2255a17 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
@@ -191,8 +195,9 @@ typedef struct {
     /* change_count is increased with every operation which modifies the inode,
      * and can be used to determine if cached data is still valid.
      * change_commit is the value of change_count when the inode was last
-     * committed to stable storage. */
-    uint64_t change_count, change_commit;
+     * committed to stable storage (the log).
+     * change_cloud tracks which version was last commited to cloud storage. */
+    uint64_t change_count, change_commit, change_cloud;
 
     /* Timestamp for controlling when modified data is flushed to stable
      * storage.  When an inode is first modified from a clean state, this is