#define CLOUDLOG_JOURNAL 0x01
#define CLOUDLOG_CLOUD 0x02
#define CLOUDLOG_CACHE 0x04
+#define CLOUDLOG_UNCOMMITTED 0x10
struct _BlueSkyCloudLog {
gint refcount;
GMutex *lock;
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);