Messages in this thread Patch in this message | | | From | Richard Weinberger <> | Subject | [PATCH 01/15] UBI: Fastmap: Relax EBA selfcheck | Date | Thu, 21 Jun 2012 23:49:54 +0200 |
| |
It is allowed that fastmap knows an EBA table entry as unmapped while scanning would know this entry as mapped. Fastmap knows the current EBA table and scannning reconstructs it. This case can happen if the fastmap gets written while the entry is alredy unmapped but the PEB has not been erased. If the UBI device gets detached at this moment, scanning may detect this EBA entry as mapped. (Of course the upper layer, UBIFS, knows this LEB is no longer used)
Signed-off-by: Richard Weinberger <richard@nod.at> --- drivers/mtd/ubi/eba.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c index 2bee8be..6698d5e 100644 --- a/drivers/mtd/ubi/eba.c +++ b/drivers/mtd/ubi/eba.c @@ -1276,7 +1276,8 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap, for (j = 0; j < vol->reserved_pebs; j++) { if (scan_eba[i][j] != fm_eba[i][j]) { - if (scan_eba[i][j] == UBI_LEB_UNMAPPED) + if (scan_eba[i][j] == UBI_LEB_UNMAPPED || + fm_eba[i][j] == UBI_LEB_UNMAPPED) continue; ubi_err("LEB:%i is mapped to PEB:%i instead of PEB:%i!", i, fm_eba[i][j], scan_eba[i][j]); -- 1.7.6.5
| |