linux/drivers/mtd/ubi
Richard Weinberger ca8a32b217 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2016-07-27 09:47:33 -07:00
..
attach.c UBI: drop null test before destroy functions 2015-10-03 20:36:10 +02:00
block.c Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
build.c UBI: Use static class and attribute groups 2015-06-02 13:16:25 +02:00
cdev.c UBI: Remove in vain semicolon 2015-11-06 23:26:51 +01:00
debug.c UBI: fix return error code 2015-12-16 22:45:04 +01:00
debug.h UBI: power cut emulation for testing 2015-04-13 21:05:17 +02:00
eba.c ubi: Make recover_peb power cut aware 2016-07-27 09:47:33 -07:00
fastmap-wl.c ubi: fastmap: Implement produce_free_peb() 2015-10-03 23:25:30 +02:00
fastmap.c UBI: Fix static volume checks when Fastmap is used 2016-06-01 12:15:54 -07:00
gluebi.c UBI: Update comments to reflect UBI_METAONLY flag 2015-10-03 20:11:59 +02:00
io.c UBI: fix use of "VID" vs. "EC" in header self-check 2015-12-16 22:46:26 +01:00
kapi.c VFS: assorted d_backing_inode() annotations 2015-04-15 15:06:59 -04: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-01-28 16:18:09 +01:00
ubi-media.h UBI: Fix typo in comment 2015-10-03 20:09:41 +02:00
ubi.h UBI: Fix static volume checks when Fastmap is used 2016-06-01 12:15:54 -07:00
upd.c ubi: Fix out of bounds write in volume update code 2016-03-09 15:34:56 -08:00
vmt.c UBI: Use static class and attribute groups 2015-06-02 13:16:25 +02:00
vtbl.c UBI: return ENOSPC if no enough space available 2015-09-29 12:47:05 +02:00
wl.c mtd: ubi: don't leak e if schedule_erase() fails 2015-12-16 22:59:03 +01:00
wl.h UBI: Fastmap: Remove is_fm_block() 2015-03-26 22:47:38 +01:00