Rework cache flushing logic--this version should work much better.
[bluesky.git] / bluesky / bluesky.h
index 59a33c5..714ec55 100644 (file)
@@ -129,6 +129,9 @@ typedef struct {
      * is held for list editing purposes.  Items at the head of the list are
      * most recently accessed/modified. */
     GList dirty_list, accessed_list;
+
+    /* Mutex for the flush daemon, to prevent concurrent execution. */
+    GMutex *flushd_lock;
 } BlueSkyFS;
 
 /* Inode number of the root directory. */
@@ -283,6 +286,7 @@ gint bluesky_dirent_compare(gconstpointer a, gconstpointer b,
                             gpointer unused);
 
 void bluesky_flushd_invoke(BlueSkyFS *fs);
+void bluesky_flushd_invoke_conditional(BlueSkyFS *fs);
 void bluesky_inode_do_sync(BlueSkyInode *inode);
 
 void bluesky_debug_dump(BlueSkyFS *fs);