diff mbox

UBI: ubi_wl_flush(): Use list_for_each_entry_safe()

Message ID 1406446548-5790-1-git-send-email-richard@nod.at
State Accepted
Commit 49e236bc4a2639af0e77b3a05460e8367e3187a4
Headers show

Commit Message

Richard Weinberger July 27, 2014, 7:35 a.m. UTC
Use the _safe variant because we're iterating over
a list where items get deleted and freed.

Signed-off-by: Richard Weinberger <richard@nod.at>
---
 drivers/mtd/ubi/wl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Artem Bityutskiy July 28, 2014, 4:08 p.m. UTC | #1
On Sun, 2014-07-27 at 09:35 +0200, Richard Weinberger wrote:
> Use the _safe variant because we're iterating over
> a list where items get deleted and freed.
> 
> Signed-off-by: Richard Weinberger <richard@nod.at>

Pushed to linux-ubifs.git, thanks!
diff mbox

Patch

diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 0f3425d..20f491713 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -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);