remarkable-linux/drivers/mtd
Artem Bityutskiy e8823bd63d UBI: fix atomic LEB change problems
When the UBI device is nearly full, i.e. all LEBs are mapped, we have
only one spare LEB left - the one we reserved for WL purposes. Well,
I do not count the LEBs which were reserved for bad PEB handling -
suppose NOR flash for simplicity. If an "atomic LEB change operation"
is run, and the WL unit is moving a LEB, we have no spare LEBs to
finish the operation and fail, which is not good. Moreover, if there
are 2 or more simultanious "atomic LEB change" requests, only one of
them has chances to succeed, the other will fail with -ENOSPC. Not
good either.

This patch does 2 things:
1. Reserves one PEB for the "atomic LEB change" operation.
2. Serealize the operations so that only on of them may run
   at a time (by means of a mutex).

Pointed-to-by: Brijesh Singh <brijesh.s.singh@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2007-10-14 13:10:21 +03:00
..
chips [MTD] [CHIPS] Remove MTD_OBSOLETE_CHIPS (jedec, amd_flash, sharp) 2007-05-09 13:34:37 +01:00
devices [MIPS] Remove Momentum Ocelot support. 2007-07-31 21:35:29 +01:00
maps [ARM] 4554/1: replace consistent_sync() with flush_ioremap_region() 2007-08-23 12:31:31 +01:00
nand pci: fix unterminated pci_device_id lists 2007-09-19 11:24:17 -07:00
onenand Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
ubi UBI: fix atomic LEB change problems 2007-10-14 13:10:21 +03:00
afs.c
cmdlinepart.c
ftl.c
inftlcore.c
inftlmount.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
Kconfig [S390] Kconfig: menus with depends on HAS_IOMEM. 2007-05-10 15:46:07 +02:00
Makefile [MTD] Makefile fix for mtdsuper 2007-08-03 12:42:40 +01:00
mtd_blkdevs.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
mtdblock.c
mtdblock_ro.c
mtdchar.c mtdchar build fix 2007-08-11 15:47:41 -07:00
mtdconcat.c
mtdcore.c
mtdpart.c [MTD] Makefile fix for mtdsuper 2007-08-03 12:42:40 +01:00
mtdsuper.c [MTD] Initialise s_flags in get_sb_mtd_aux() 2007-09-02 18:18:46 +01:00
nftlcore.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
nftlmount.c
redboot.c
rfd_ftl.c [MTD] Fix potential leak in rfd_ftl_add_mtd 2007-08-02 21:44:10 +01:00
ssfdc.c