2014-07-27 07:36:14

by Richard Weinberger

[permalink] [raw]
Subject: [PATCH] UBI: ubi_wl_flush(): Use list_for_each_entry_safe()

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

Signed-off-by: Richard Weinberger <[email protected]>
---
drivers/mtd/ubi/wl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

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);
--
2.0.1


2014-07-28 16:08:53

by Artem Bityutskiy

[permalink] [raw]
Subject: Re: [PATCH] UBI: ubi_wl_flush(): Use list_for_each_entry_safe()

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 <[email protected]>

Pushed to linux-ubifs.git, thanks!

--
Best Regards,
Artem Bityutskiy