struct cent_sum_offset { struct cent_sum_offset *next; uint32_t offset; uint32_t length; }; size = 12 bytescent_sum_offset is designed to store the offset of the saved CS nodes and their length for later usage to correct space accounting information and jeb lists. It is a simple linked list. offset stores the offset of the CS node and length is the length of the CS node.
struct jffs2_cent_sum_tmp_raws { struct jffs2_raw_node_ref *raw; struct jffs2_raw_node_ref *nii; }; size = 8 bytesThis structure is used to make the remount faster if the fs is in read-write mode and remounted to read-only.
struct cent_sum { struct jffs2_eraseblock *csblock; uint32_t csblock_free; uint32_t cs_log_offset; // for mount param / sysfs support unsigned char cs_flags; struct cent_sum_offset *offset_list_tail; struct cent_sum_offset *offset_list_head; uint32_t offset_list_num; void *raw_nii; }; size = 36 bytesThis structure is the main structure of CS. It is accessible from jffs2_sb_info when CS support is enabled. csblock is a pointer to a jeb where CS stores jffs2_cent_sum_log_nodes (used only in First Erase Block mode (FEB)). csblock_free shows the amount of free space in csblock to store CS log nodes (only in FEB). cs_log_offset shows whence CS can load the CS log node in Mount Param / Sysfs mode (MP/SFS). cs_flags describes the state of the CS:
Havasi Ferenc 2005-12-22