Messages in this thread | | | Subject | Re: [PATCH v6 12/15] ubi: fastmap: Add all fastmap pebs into 'ai->fastmap' when fm->used_blocks>=2 | From | Zhihao Cheng <> | Date | Tue, 11 Jan 2022 19:44:49 +0800 |
| |
Hi Richard, > In ubi_wl_init() there is another corner case documented: > /* > * The fastmap update code might not find a free PEB for > * writing the fastmap anchor to and then reuses the > * current fastmap anchor PEB. When this PEB gets erased > * and a power cut happens before it is written again we > * must make sure that the fastmap attach code doesn't > * find any outdated fastmap anchors, hence we erase the > * outdated fastmap anchor PEBs synchronously here. > */ > if (aeb->vol_id == UBI_FM_SB_VOLUME_ID) > sync = true; > > So ubi_wl_init() makes sure that all old fastmap anchors get erased before UBI > starts to operate. With your change this is no longer satisfied I seem to understand the another case. But I'm still confused that why outdated fastmap PEBs cannot be erased. When UBI comes to this point, it means UBI is attached by **full scanning mode**, scan_fast() returns two values: UBI_NO_FASTMAP: scan all pebs from pnum UBI_FM_MAX_START, ai is assigned with scan_ai, at last, all fastmap pebs are added into 'ai->fastmap' UBI_BAD_FASTMAP: scan all pebs from pnum 0, all fastmap pebs are added into 'ai->fastmap'
| |