tcmu: Fix module removal due to stuck unmap_thread thread again

Because the unmap code just after the schdule() returned may take
a long time and if the kthread_stop() is fired just when in this
routine, the module removal maybe stuck too.

Signed-off-by: Xiubo Li <lixiubo@cmss.chinamobile.com>
Reviewed-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
Xiubo Li 2017-06-15 15:05:31 +08:00 committed by Nicholas Bellinger
parent 1d6ef27659
commit 07932a023a

View file

@ -1707,7 +1707,7 @@ static int unmap_thread_fn(void *data)
struct page *page; struct page *page;
int i; int i;
while (1) { while (!kthread_should_stop()) {
DEFINE_WAIT(__wait); DEFINE_WAIT(__wait);
prepare_to_wait(&unmap_wait, &__wait, TASK_INTERRUPTIBLE); prepare_to_wait(&unmap_wait, &__wait, TASK_INTERRUPTIBLE);