Merge pull request #268 from mmichal10/fix_mem_leak
Free memory of all allocated threads.
This commit is contained in:
commit
51bb7677f1
@ -52,8 +52,10 @@ static int _cas_io_queue_thread(void *data)
|
||||
/* If we get here, then thread was signalled to terminate.
|
||||
* So, let's free memory and exit.
|
||||
*/
|
||||
wait_for_completion(&info->compl);
|
||||
printk(KERN_DEBUG "Thread %s stopped\n", info->name);
|
||||
kfree(info);
|
||||
do_exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -112,7 +114,9 @@ static int _cas_cleaner_thread(void *data)
|
||||
}
|
||||
} while (true);
|
||||
|
||||
complete_and_exit(&info->compl, 0);
|
||||
wait_for_completion(&info->compl);
|
||||
kfree(info);
|
||||
do_exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -144,7 +148,9 @@ static int _cas_metadata_updater_thread(void *data)
|
||||
atomic_read(&info->kicked));
|
||||
} while (true);
|
||||
|
||||
complete_and_exit(&info->compl, 0);
|
||||
wait_for_completion(&info->compl);
|
||||
kfree(info);
|
||||
do_exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -202,8 +208,10 @@ static void _cas_start_thread(struct cas_thread_info *info)
|
||||
static void _cas_stop_thread(struct cas_thread_info *info)
|
||||
{
|
||||
if (info->running && info->thread) {
|
||||
reinit_completion(&info->compl);
|
||||
atomic_set(&info->stop, 1);
|
||||
wake_up(&info->wq);
|
||||
complete(&info->compl);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user