From: Ingo Molnar Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Index: linux-2.6.16-rc5/drivers/md/kcopyd.c =================================================================== --- linux-2.6.16-rc5.orig/drivers/md/kcopyd.c 2006-03-12 21:57:56.000000000 +0000 +++ linux-2.6.16-rc5/drivers/md/kcopyd.c 2006-03-12 21:58:46.000000000 +0000 @@ -599,51 +599,51 @@ static void client_del(struct kcopyd_cli up(&_client_lock); } -static DECLARE_MUTEX(kcopyd_init_lock); +static DEFINE_MUTEX(kcopyd_init_lock); static int kcopyd_clients = 0; static int kcopyd_init(void) { int r; - down(&kcopyd_init_lock); + mutex_lock(&kcopyd_init_lock); if (kcopyd_clients) { /* Already initialized. */ kcopyd_clients++; - up(&kcopyd_init_lock); + mutex_unlock(&kcopyd_init_lock); return 0; } r = jobs_init(); if (r) { - up(&kcopyd_init_lock); + mutex_unlock(&kcopyd_init_lock); return r; } _kcopyd_wq = create_singlethread_workqueue("kcopyd"); if (!_kcopyd_wq) { jobs_exit(); - up(&kcopyd_init_lock); + mutex_unlock(&kcopyd_init_lock); return -ENOMEM; } kcopyd_clients++; INIT_WORK(&_kcopyd_work, do_work, NULL); - up(&kcopyd_init_lock); + mutex_unlock(&kcopyd_init_lock); return 0; } static void kcopyd_exit(void) { - down(&kcopyd_init_lock); + mutex_lock(&kcopyd_init_lock); kcopyd_clients--; if (!kcopyd_clients) { jobs_exit(); destroy_workqueue(_kcopyd_wq); _kcopyd_wq = NULL; } - up(&kcopyd_init_lock); + mutex_unlock(&kcopyd_init_lock); } int kcopyd_client_create(unsigned int nr_pages, struct kcopyd_client **result)