summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/ubi/vtbl.c
diff options
context:
space:
mode:
authorArtem Bityutskiy2008-05-20 08:54:02 +0200
committerArtem Bityutskiy2008-07-24 12:32:54 +0200
commitbeeea636030622f6de67d15c61f5b311a03d188c (patch)
tree217f6ae5a148a1ef7054aad42ce5664f74c763b2 /drivers/mtd/ubi/vtbl.c
parentUBI: print error code (diff)
downloadkernel-qcow2-linux-beeea636030622f6de67d15c61f5b311a03d188c.tar.gz
kernel-qcow2-linux-beeea636030622f6de67d15c61f5b311a03d188c.tar.xz
kernel-qcow2-linux-beeea636030622f6de67d15c61f5b311a03d188c.zip
UBI: add a comment
It is not clear why we schedule PEB for scrubbing in case of -EBADMSG. Elaborate. Requested-by: Kyungmin Park <kmpark@infradead.org> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi/vtbl.c')
-rw-r--r--drivers/mtd/ubi/vtbl.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
index 3c4d68f2cfd4..42a7815086b7 100644
--- a/drivers/mtd/ubi/vtbl.c
+++ b/drivers/mtd/ubi/vtbl.c
@@ -385,7 +385,16 @@ static struct ubi_vtbl_record *process_lvol(struct ubi_device *ubi,
err = ubi_io_read_data(ubi, leb[seb->lnum], seb->pnum, 0,
ubi->vtbl_size);
if (err == UBI_IO_BITFLIPS || err == -EBADMSG)
- /* Scrub the PEB later */
+ /*
+ * Scrub the PEB later. Note, -EBADMSG indicates an
+ * uncorrectable ECC error, but we have our own CRC and
+ * the data will be checked later. If the data is OK,
+ * the PEB will be scrubbed (because we set
+ * seb->scrub). If the data is not OK, the contents of
+ * the PEB will be recovered from the second copy, and
+ * seb->scrub will be cleared in
+ * 'ubi_scan_add_used()'.
+ */
seb->scrub = 1;
else if (err)
goto out_free;