]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ubi: Fix Fastmap's update_vol()
authorRichard Weinberger <richard@nod.at>
Wed, 24 Aug 2016 12:36:15 +0000 (14:36 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 23 Feb 2017 03:54:08 +0000 (03:54 +0000)
commit f7d11b33d4e8cedf19367c09b891bbc705163976 upstream.

Usually Fastmap is free to consider every PEB in one of the pools
as newer than the existing PEB. Since PEBs in a pool are by definition
newer than everything else.
But update_vol() missed the case that a pool can contain more than
one candidate.

Fixes: dbb7d2a88d ("UBI: Add fastmap core")
Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/mtd/ubi/fastmap.c

index 640b8115505eac8a6fdac6399f274435de7b7ff0..d2ee2576b4494ac1da55af3becfd85bbb0c13494 100644 (file)
@@ -258,6 +258,7 @@ static int update_vol(struct ubi_device *ubi, struct ubi_attach_info *ai,
                        aeb->pnum = new_aeb->pnum;
                        aeb->copy_flag = new_vh->copy_flag;
                        aeb->scrub = new_aeb->scrub;
+                       aeb->sqnum = new_aeb->sqnum;
                        kmem_cache_free(ai->aeb_slab_cache, new_aeb);
 
                /* new_aeb is older */