Patchworkβ UBI: Don't exit from ubi_thread until kthread_should_stop() is true

login
register
about
Submitter Vitaliy Gusev
Date 2008-11-05 15:27:18
Message ID <200811051827.19164.vgusev@openvz.org>
Download mbox | patch
Permalink /patch/7352/
State New
Headers show

Comments

Vitaliy Gusev - 2008-11-05 15:27:18
If ubi_thread() exits but kthread_should_stop() is not true
then kthread_stop() will never return and cleanup thread
will forever stay in "D" state.

Signed-off-by: Vitaliy Gusev <vgusev@openvz.org>

---
Artem Bityutskiy - 2008-11-06 07:22:36
On Wed, 2008-11-05 at 18:27 +0300, Vitaliy Gusev wrote:
> If ubi_thread() exits but kthread_should_stop() is not true
> then kthread_stop() will never return and cleanup thread
> will forever stay in "D" state.
> 
> Signed-off-by: Vitaliy Gusev <vgusev@openvz.org>

Thanks, I'll push your patch.

Patch

diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 05d7093..dcb6dac 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -1396,7 +1396,8 @@  int ubi_thread(void *u)
 				ubi_msg("%s: %d consecutive failures",
 					ubi->bgt_name, WL_MAX_FAILURES);
 				ubi_ro_mode(ubi);
-				break;
+				ubi->thread_enabled = 0;
+				continue;
 			}
 		} else
 			failures = 0;