linux/drivers/mtd/ubi
Richard Weinberger e66d5f6e1b ubi: Make recover_peb power cut aware
commit 972228d874 upstream.

recover_peb() was never power cut aware,
if a power cut happened right after writing the VID header
upon next attach UBI would blindly use the new partial written
PEB and all data from the old PEB is lost.

In order to make recover_peb() power cut aware, write the new
VID with a proper crc and copy_flag set such that the UBI attach
process will detect whether the new PEB is completely written
or not.
We cannot directly use ubi_eba_atomic_leb_change() since we'd
have to unlock the LEB which is facing a write error.

Reported-by: Jörg Pfähler <pfaehler@isse.de>
Reviewed-by: Jörg Pfähler <pfaehler@isse.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
[bwh: Backported to 3.16: no need to unlock ubi->fm_eba_sem on error]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2016-08-22 22:38:18 +01:00
..
attach.c UBI: account for bitflips in both the VID header and data 2015-05-05 11:09:35 +01:00
block.c UBI: block: Add missing cache flushes 2015-09-30 13:20:56 +01:00
build.c UBI: R/O block driver on top of UBI volumes 2014-02-28 16:29:48 +02:00
cdev.c UBI: fix check for "too many bytes" 2015-05-05 11:09:36 +01:00
debug.c UBI: embed ubi_debug_info field in ubi_device struct 2012-12-10 13:38:59 +02:00
debug.h mtd: rename random32() to prandom_u32() 2013-02-04 09:26:28 +02:00
eba.c ubi: Make recover_peb power cut aware 2016-08-22 22:38:18 +01:00
fastmap.c UBI: Fix static volume checks when Fastmap is used 2016-08-22 22:38:04 +01:00
gluebi.c UBI: gluebi: rename misleading variables 2012-11-30 13:54:41 +02:00
io.c UBI: Validate data_size 2015-10-19 15:42:37 +01:00
kapi.c UBI: modify ubi_wl_flush function to clear work queue for a lnum 2012-05-21 11:34:41 +03:00
Kconfig UBI: block: Add CONFIG_BLOCK dependency 2014-03-04 14:49:53 +02:00
Makefile UBI: R/O block driver on top of UBI volumes 2014-02-28 16:29:48 +02:00
misc.c UBI: fix soft lockup in ubi_check_volume() 2015-05-12 09:36:35 +01:00
ubi-media.h UBI: Add fastmap on-flash data structures 2012-10-03 12:29:37 +03:00
ubi.h UBI: Fix static volume checks when Fastmap is used 2016-08-22 22:38:04 +01:00
upd.c ubi: Fix out of bounds write in volume update code 2016-03-24 10:01:05 +00:00
vmt.c UBI: introduce helpers dbg_chk_{io, gen} 2012-12-10 13:38:59 +02:00
vtbl.c UBI: return ENOSPC if no enough space available 2015-10-19 15:47:00 +01:00
wl.c UBI: return ENOSPC if no enough space available 2015-10-19 15:47:00 +01:00