linux/drivers/mtd
Artem Bityutskiy b86a2c56e5 UBI: do not switch to R/O mode on read errors
This patch improves UBI errors handling. ATM UBI switches to
R/O mode when the WL worker fails to read the source PEB.
This means that the upper layers (e.g., UBIFS) has no
chances to unmap the erroneous PEB and fix the error.
This patch changes this behaviour and makes UBI put PEBs
like this into a separate RB-tree, thus preventing the
WL worker from hitting the same read errors again and
again.

But there is a 10% limit on a maximum amount of PEBs like this.
If there are too much of them, UBI switches to R/O mode.

Additionally, this patch teaches UBI not to panic and
switch to R/O mode if after a PEB has been copied, the
target LEB cannot be read back. Instead, now UBI cancels
the operation and schedules the target PEB for torturing.

The error paths has been tested by ingecting errors
into 'ubi_eba_copy_leb()'.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2009-06-02 13:53:35 +03:00
..
chips [MTD] [NOR] Fixup for Numonyx M29W128 chips 2009-04-06 07:23:26 -07:00
devices mtd: fix timeout in M25P80 driver 2009-05-08 13:51:53 +01:00
lpddr [MTD] [LPDDR] qinfo_probe depends on lpddr 2009-01-11 10:42:32 +00:00
maps Merge git://git.infradead.org/mtd-2.6 2009-04-06 14:56:26 -07:00
nand cafe_nand: Fix warning 2009-04-24 07:52:08 -07:00
onenand Merge git://git.infradead.org/mtd-2.6 2009-04-06 14:56:26 -07:00
tests trivial: NULL noise: drivers/mtd/tests/mtd_*test.c 2009-03-30 15:22:04 +02:00
ubi UBI: do not switch to R/O mode on read errors 2009-06-02 13:53:35 +03:00
afs.c
ar7part.c [MTD] mtdpart: Make all partition parsers return allocated array 2009-03-20 18:55:17 +00:00
cmdlinepart.c [MTD] mtdpart: Make all partition parsers return allocated array 2009-03-20 18:55:17 +00:00
ftl.c [MTD] Remove strange u_int32_t types from FTL 2008-12-10 14:06:42 +00:00
inftlcore.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00
inftlmount.c [MTD] we don't need no misc devices 2009-03-20 13:16:26 +00:00
internal.h NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
Kconfig Merge branch 'master' of git://git.infradead.org/users/dedekind/mtd-tests-2.6 2009-01-05 16:24:55 +00:00
Makefile NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtd_blkdevs.c [MTD] driver model updates 2009-04-04 14:29:07 +01:00
mtdbdi.c NOMMU: Present backing device capabilities for MTD chardevs 2009-03-24 09:00:19 +00:00
mtdblock_ro.c
mtdblock.c
mtdchar.c [MTD] driver model updates 2009-04-04 14:29:07 +01:00
mtdconcat.c NOMMU: Add support for direct mapping through mtdconcat if possible 2009-03-24 09:01:08 +00:00
mtdcore.c mtd: expose subpage size via sysfs 2009-04-19 09:12:49 +01:00
mtdcore.h
mtdoops.c [MTD] mtdoops: fix a bit of spin lock usage 2009-03-20 18:39:25 +00:00
mtdpart.c [MTD] mtdpart: Make ecc_stats more realistic. 2009-04-06 07:22:28 -07:00
mtdsuper.c Convert obvious places to deactivate_locked_super() 2009-05-09 10:49:40 -04:00
nftlcore.c [MTD] Auto-load nftl module when device opened. 2009-03-20 18:34:00 +00:00
nftlmount.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00
ofpart.c [MTD] ofpart: Check name property to determine partition nodes. 2009-03-24 14:04:20 +00:00
redboot.c
rfd_ftl.c [MTD] remove private wrapper of endian helpers in rfd_ftl.c 2008-12-10 15:39:09 +00:00
ssfdc.c [MTD] update internal API to support 64-bit device size 2008-12-10 13:37:21 +00:00