BlueSkyCloudLog *bluesky_cloudlog_new(BlueSkyFS *fs, const BlueSkyCloudID *id);
gchar *bluesky_cloudlog_id_to_string(BlueSkyCloudID id);
BlueSkyCloudID bluesky_cloudlog_id_from_string(const gchar *idstr);
+void bluesky_cloudlog_threads_init(BlueSkyFS *fs);
void bluesky_cloudlog_ref(BlueSkyCloudLog *log);
void bluesky_cloudlog_unref(BlueSkyCloudLog *log);
+void bluesky_cloudlog_unref_delayed(BlueSkyCloudLog *log);
void bluesky_cloudlog_erase(BlueSkyCloudLog *log);
void bluesky_cloudlog_stats_update(BlueSkyCloudLog *log, int type);
void bluesky_cloudlog_sync(BlueSkyCloudLog *log);
typedef struct {
uint64_t inum;
- /* The ID of the most recent version of the inode. */
- BlueSkyCloudID id;
-
- /* The location where that version is written in the cloud. */
- BlueSkyCloudPointer location;
-
- /* If the cloud log entry exists in memory, then a pointer to it, otherwise
- * NULL. */
+ /* A pointer to the cloud log entry for this inode. This may or may not
+ * actually have data loaded (it might just contain pointers to the data
+ * location, and in fact this will likely often be the case). */
BlueSkyCloudLog *item;
} InodeMapEntry;
InodeMapEntry *bluesky_inode_map_lookup(GSequence *inode_map, uint64_t inum,
int action);
BlueSkyCloudLog *bluesky_inode_map_serialize(BlueSkyFS *fs);
+void bluesky_inode_map_minimize(BlueSkyFS *fs);
gboolean bluesky_checkpoint_load(BlueSkyFS *fs);