host->h_version    = version;
        host->h_proto      = proto;
        host->h_rpcclnt    = NULL;
-       init_MUTEX(&host->h_sema);
+       mutex_init(&host->h_mutex);
        host->h_nextrebind = jiffies + NLM_HOST_REBIND;
        host->h_expires    = jiffies + NLM_HOST_EXPIRE;
        atomic_set(&host->h_count, 1);
                        (unsigned)ntohl(host->h_addr.sin_addr.s_addr));
 
        /* Lock host handle */
-       down(&host->h_sema);
+       mutex_lock(&host->h_mutex);
 
        /* If we've already created an RPC client, check whether
         * RPC rebind is required
                host->h_rpcclnt = clnt;
        }
 
-       up(&host->h_sema);
+       mutex_unlock(&host->h_mutex);
        return clnt;
 
 forgetit:
        printk("lockd: couldn't create RPC handle for %s\n", host->h_name);
-       up(&host->h_sema);
+       mutex_unlock(&host->h_mutex);
        return NULL;
 }
 
 
        u32                     h_nsmstate;     /* true remote NSM state */
        u32                     h_pidcount;     /* Pseudopids */
        atomic_t                h_count;        /* reference count */
-       struct semaphore        h_sema;         /* mutex for pmap binding */
+       struct mutex            h_mutex;        /* mutex for pmap binding */
        unsigned long           h_nextrebind;   /* next portmap call */
        unsigned long           h_expires;      /* eligible for GC */
        struct list_head        h_lockowners;   /* Lockowners for the client */