summaryrefslogtreecommitdiff
path: root/drivers/md/dm-vdo/thread-utils.c
diff options
context:
space:
mode:
authorMike Snitzer <snitzer@kernel.org>2024-02-09 09:54:53 -0600
committerMike Snitzer <snitzer@kernel.org>2024-03-01 09:25:54 -0500
commit877f36b76485d1e0dab5a9de8a7175c66cc791e3 (patch)
treeb9f5a3bdd48845c0c0cb7d3a1b314762975cd184 /drivers/md/dm-vdo/thread-utils.c
parent8e6333af19830efdd5adbc994f256fcd5f31e7e7 (diff)
dm vdo: fold thread-cond-var.c into thread-utils
Further cleanup is needed for thread-utils interfaces given many functions should return void or be removed entirely because they amount to obfuscation via wrappers. Signed-off-by: Mike Snitzer <snitzer@kernel.org> Signed-off-by: Matthew Sakai <msakai@redhat.com>
Diffstat (limited to 'drivers/md/dm-vdo/thread-utils.c')
-rw-r--r--drivers/md/dm-vdo/thread-utils.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/md/dm-vdo/thread-utils.c b/drivers/md/dm-vdo/thread-utils.c
index 1a1eb9ae9e33..5d371bfba8ff 100644
--- a/drivers/md/dm-vdo/thread-utils.c
+++ b/drivers/md/dm-vdo/thread-utils.c
@@ -135,3 +135,14 @@ int uds_join_threads(struct thread *thread)
uds_free(thread);
return UDS_SUCCESS;
}
+
+void uds_wait_cond(struct cond_var *cv, struct mutex *mutex)
+{
+ DEFINE_WAIT(__wait);
+
+ prepare_to_wait(&cv->wait_queue, &__wait, TASK_IDLE);
+ uds_unlock_mutex(mutex);
+ schedule();
+ finish_wait(&cv->wait_queue, &__wait);
+ uds_lock_mutex(mutex);
+}