* persistent storage. */
void bluesky_serialize_superblock(GString *out, BlueSkyFS *fs);
BlueSkyFS *bluesky_deserialize_superblock(const gchar *buf);
-void bluesky_serialize_inode(GString *out, BlueSkyInode *inode);
+BlueSkyCloudLog *bluesky_serialize_inode(BlueSkyInode *inode);
gboolean bluesky_deserialize_inode(BlueSkyInode *inode, const gchar *buf);
/* Storage layer. Requests can be performed asynchronously, so these objects
// TODO: Location in journal/cache
int log_seq, log_offset, log_size;
- // Pointers to other objects
- GArray *pointers;
+ // Pointers to other objects. Each link counts towards the reference count
+ // of the pointed-to object. To avoid memory leaks there should be no
+ // cycles in the reference graph.
+ GArray *links;
// Serialized data, if available in memory (otherwise NULL), and a lock
// count which tracks if there are users that require the data to be kept