aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/ubi/eba.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/ubi/eba.c')
-rw-r--r--drivers/mtd/ubi/eba.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index fb7f19b62d9..cd26da8ad22 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -1028,12 +1028,14 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
1028 * 'ubi_wl_put_peb()' function on the @ubi->move_mutex. In turn, we are 1028 * 'ubi_wl_put_peb()' function on the @ubi->move_mutex. In turn, we are
1029 * holding @ubi->move_mutex and go sleep on the LEB lock. So, if the 1029 * holding @ubi->move_mutex and go sleep on the LEB lock. So, if the
1030 * LEB is already locked, we just do not move it and return 1030 * LEB is already locked, we just do not move it and return
1031 * %MOVE_CANCEL_RACE, which means that UBI will re-try, but later. 1031 * %MOVE_RETRY. Note, we do not return %MOVE_CANCEL_RACE here because
1032 * we do not know the reasons of the contention - it may be just a
1033 * normal I/O on this LEB, so we want to re-try.
1032 */ 1034 */
1033 err = leb_write_trylock(ubi, vol_id, lnum); 1035 err = leb_write_trylock(ubi, vol_id, lnum);
1034 if (err) { 1036 if (err) {
1035 dbg_wl("contention on LEB %d:%d, cancel", vol_id, lnum); 1037 dbg_wl("contention on LEB %d:%d, cancel", vol_id, lnum);
1036 return MOVE_CANCEL_RACE; 1038 return MOVE_RETRY;
1037 } 1039 }
1038 1040
1039 /* 1041 /*