+ /* 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;
+
+ /* Timestamp for controlling when modified data is flushed to stable
+ * storage. When an inode is first modified from a clean state, this is
+ * set to the current time. If the inode is clean, it is set to zero. */
+ int64_t change_time;
+
+ /* Last access time to this inode, for controlling cache evictions. */
+ int64_t access_time;
+
+ /* Additional state for tracking cache writeback status. */
+ uint64_t change_pending; /* change_count version currently being committed to storage */
+
+ /* Pointers to the linked-list elements for this inode in the accessed and
+ * dirty linked lists. We re-use the GList structure, using ->next to
+ * point to the head of the list and ->prev to point to the tail. The data
+ * element is unused. */
+ GList *accessed_list, *dirty_list;
+