diff options
author | Bhavesh Parekh <bparekh@nvidia.com> | 2011-11-30 17:43:42 +0530 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2011-11-30 17:43:42 +0530 |
commit | e801e128b2200c40a0ec236cf2330b2586b6e05a (patch) | |
tree | 2f348a09690fea8484d2a4310c1f979f8156b46a /drivers/mtd/ubi/wl.c | |
parent | eaecf43a6970c8d0ef54a31427c82a99e4863fe8 (diff) | |
download | op-kernel-dev-e801e128b2200c40a0ec236cf2330b2586b6e05a.zip op-kernel-dev-e801e128b2200c40a0ec236cf2330b2586b6e05a.tar.gz |
UBI: fix missing scrub when there is a bit-flip
Under some cases, when scrubbing the PEB if we did not get the lock on
the PEB it fails to scrub. Add that PEB again to the scrub list
Artem: minor amendments.
Cc: stable@kernel.org [2.6.31+]
Signed-off-by: Bhavesh Parekh <bparekh@nvidia.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Diffstat (limited to 'drivers/mtd/ubi/wl.c')
-rw-r--r-- | drivers/mtd/ubi/wl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index 42c684c..277c429 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c @@ -795,7 +795,10 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk, protect = 1; goto out_not_moved; } - + if (err == MOVE_RETRY) { + scrubbing = 1; + goto out_not_moved; + } if (err == MOVE_CANCEL_BITFLIPS || err == MOVE_TARGET_WR_ERR || err == MOVE_TARGET_RD_ERR) { /* |