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 [MTD] replace kmalloc+memset with kzalloc 2006-11-28 23:47:21 +00:00
cmdlinepart.c [MTD] replace kmalloc+memset with kzalloc 2006-11-28 23:47:21 +00:00
ftl.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
inftlcore.c [MTD] replace kmalloc+memset with kzalloc 2006-11-28 23:47:21 +00:00
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_ro.c [MTD] replace kmalloc+memset with kzalloc 2006-11-28 23:47:21 +00:00
mtdblock.c [MTD] replace kmalloc+memset with kzalloc 2006-11-28 23:47:21 +00:00
mtdchar.c mtdchar build fix 2007-08-11 15:47:41 -07:00
mtdconcat.c [MTD] [NAND] make oobavail public 2007-03-08 09:17:43 +00:00
mtdcore.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
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 [MTD] Rework the out of band handling completely 2006-05-29 15:06:51 +02:00
redboot.c [MTD] Improve heuristic for detecting wrong-endian RedBoot partition table 2007-02-10 09:58:31 +00:00
rfd_ftl.c [MTD] Fix potential leak in rfd_ftl_add_mtd 2007-08-02 21:44:10 +01:00
ssfdc.c [MTD] Fix ssfdc blksize typo 2006-12-11 09:43:38 +00:00