Hi Artem! Am 10.05.2012 06:26, schrieb Artem Bityutskiy: > Hi Richard, I would like to complain about the names again. I though I > better give this feed back as soon as possible... No problem. :) > Firs of all, thanks for doing this, I will look closer, and I am very > keen of merging this stuff once we are sure its design is good, allows > for future extensions and is backward-compatible. > Yeah. First of all, yes it's fully backward-compatible. It uses two new internal volume IDs with compat = UBI_COMPAT_DELETE. Old UBI implementations will delete the checkpoint and continue with scanning... Regarding design, ubi_wl_get_peb() currently offers three types of data types. UBI_LONGTERM, UBI_SHORTTERM and UBI_UNKNOWN. Do we really need them? Checkpointing has a pool of unknown PEBs. This PEBs have to be scanned while attaching. For now I had to create three pools (for UBI_LONGTERM, UBI_SHORTTERM and UBI_UNKNOWN). This makes the whole thing complexer than needed. It introduces also some nasty corner cases. To make the review easier for you: The most critical code path is scan_pool() -> process_pool_seb() -> update_vol(). It searches within a pool for PEBs which are no longer empty and scans them. After that it updates the corresponding volume. ubi_update_checkpoint() is also very important because it has to find unused PEBs at the beginning of the MTD to place the super block. > So may be just naming your stuff UBI2, having terms like "UBI2 format", > would be the easiest? Then someone could make this to be UBI3. A > documentation section could describe what UBI2 is and how it is > different from UBI1 or just UBI. Okay, got your point. I think "fastmap" is a good name because I can also use it within the code. So, while reviewing the code please keep s/checkpoint/fastmap/g and s/cp/fm/g in mind. ;-) I like the UBI2 idea. UBI2 = UBI + fastmap. After the UBI2/fastmap design is stable I will happily write a detailed design paper for http://www.linux-mtd.infradead.org/doc/ubi.html. Thanks, //richard