[PATCH] dm vdo: tweak wait_for_completion_interruptible callers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Mike Snitzer <snitzer@xxxxxxxxxx>

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@xxxxxxxxxx>
Signed-off-by: Susan LeGendre-McGhee <slegendr@xxxxxxxxxx>
Signed-off-by: Matthew Sakai <msakai@xxxxxxxxxx>
---
 drivers/md/dm-vdo/dm-vdo-target.c | 5 +++--
 drivers/md/dm-vdo/uds-threads.c   | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/md/dm-vdo/dm-vdo-target.c b/drivers/md/dm-vdo/dm-vdo-target.c
index e2e60a29e873..e754b9e30cab 100644
--- a/drivers/md/dm-vdo/dm-vdo-target.c
+++ b/drivers/md/dm-vdo/dm-vdo-target.c
@@ -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 */
diff --git a/drivers/md/dm-vdo/uds-threads.c b/drivers/md/dm-vdo/uds-threads.c
index e7524617f9f8..769c783e342a 100644
--- a/drivers/md/dm-vdo/uds-threads.c
+++ b/drivers/md/dm-vdo/uds-threads.c
@@ -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);
-- 
2.42.0





[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux