Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49e236bc authored by Richard Weinberger's avatar Richard Weinberger Committed by Artem Bityutskiy
Browse files

UBI: bugfix in ubi_wl_flush()



Use the _safe variant because we're iterating over a list where items get
deleted and freed.

Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
parent 4df38926
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1718,12 +1718,12 @@ int ubi_wl_flush(struct ubi_device *ubi, int vol_id, int lnum)
	       vol_id, lnum, ubi->works_count);

	while (found) {
		struct ubi_work *wrk;
		struct ubi_work *wrk, *tmp;
		found = 0;

		down_read(&ubi->work_sem);
		spin_lock(&ubi->wl_lock);
		list_for_each_entry(wrk, &ubi->works, list) {
		list_for_each_entry_safe(wrk, tmp, &ubi->works, list) {
			if ((vol_id == UBI_ALL || wrk->vol_id == vol_id) &&
			    (lnum == UBI_ALL || wrk->lnum == lnum)) {
				list_del(&wrk->list);