From: Li Zefan <[email protected]>
Subject: jffs2: remove wait queue after schedule()

@wait is a local variable, so if we don't remove it from the wait queue
list, later wake_up() may end up accessing invalid memory.

This was spotted by eyes.

Signed-off-by: Li Zefan <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Brian Norris <[email protected]>
Cc: Artem Bityutskiy <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

 fs/jffs2/nodemgmt.c |    1 +
 1 file changed, 1 insertion(+)

diff -puN fs/jffs2/nodemgmt.c~jffs2-remove-wait-queue-after-schedule 
fs/jffs2/nodemgmt.c
--- a/fs/jffs2/nodemgmt.c~jffs2-remove-wait-queue-after-schedule
+++ a/fs/jffs2/nodemgmt.c
@@ -179,6 +179,7 @@ int jffs2_reserve_space(struct jffs2_sb_
                                        spin_unlock(&c->erase_completion_lock);
 
                                        schedule();
+                                       remove_wait_queue(&c->erase_wait, 
&wait);
                                } else
                                        spin_unlock(&c->erase_completion_lock);
                        } else if (ret)
_
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to