mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
dm vdo: tweak wait_for_completion_interruptible callers
Update uds_join_threads to delay in wait_for_completion_interruptible loop. And cleanup style nits in perform_admin_operation(). Signed-off-by: Mike Snitzer <snitzer@kernel.org> Signed-off-by: Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by: Matthew Sakai <msakai@redhat.com>
This commit is contained in:
parent
5581a43d30
commit
cae3816d99
@ -1235,9 +1235,10 @@ static int perform_admin_operation(struct vdo *vdo, u32 starting_phase,
|
||||
* Using the "interruptible" interface means that Linux will not log a message when we wait
|
||||
* for more than 120 seconds.
|
||||
*/
|
||||
while (wait_for_completion_interruptible(&admin->callback_sync) != 0)
|
||||
/* * However, if we get a signal in a user-mode process, we could spin... */
|
||||
while (wait_for_completion_interruptible(&admin->callback_sync)) {
|
||||
/* However, if we get a signal in a user-mode process, we could spin... */
|
||||
fsleep(1000);
|
||||
}
|
||||
|
||||
result = admin->completion.result;
|
||||
/* pairs with implicit barrier in cmpxchg above */
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "uds-threads.h"
|
||||
|
||||
#include <linux/completion.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/sched.h>
|
||||
@ -125,9 +126,8 @@ int uds_create_thread(void (*thread_function)(void *), void *thread_data,
|
||||
|
||||
int uds_join_threads(struct thread *thread)
|
||||
{
|
||||
while (wait_for_completion_interruptible(&thread->thread_done) != 0)
|
||||
/* empty loop */
|
||||
;
|
||||
while (wait_for_completion_interruptible(&thread->thread_done))
|
||||
fsleep(1000);
|
||||
|
||||
mutex_lock(&thread_mutex);
|
||||
hlist_del(&thread->thread_links);
|
||||
|
Loading…
Reference in New Issue
Block a user