ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty
authorZhihao Cheng <chengzhihao1@huawei.com>
Mon, 19 Aug 2024 03:26:22 +0000 (11:26 +0800)
committerRichard Weinberger <richard@nod.at>
Thu, 14 Nov 2024 16:48:28 +0000 (17:48 +0100)
commitc4595fe394a289927077e3da561db27811919ee0
treec1e9ec9e99406165974a2f10eb2d0320ff82bdea
parentd610020f030bec819f42de327c2bd5437d2766b3
ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty

Since commit 14072ee33d5a ("ubi: fastmap: Check wl_pool for free peb
before wear leveling"), wear_leveling_worker() won't schedule fm_work
if wear-leveling pool is empty, which could temporarily disable the
wear-leveling until the fastmap is updated(eg. pool becomes empty).
Fix it by scheduling fm_work if wl_pool is empty during wear-leveing.

Fixes: 14072ee33d5a ("ubi: fastmap: Check wl_pool for free peb before wear leveling")
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
drivers/mtd/ubi/fastmap-wl.c
drivers/mtd/ubi/wl.c
drivers/mtd/ubi/wl.h