#include <linux/poll.h>
 #include <linux/kthread.h>
 #include <linux/idr.h>
+#include <linux/mutex.h>
 
 #include "debug.h"
 #include "v9fs.h"
 static u16 v9fs_mux_get_tag(struct v9fs_mux_data *);
 static void v9fs_mux_put_tag(struct v9fs_mux_data *, u16);
 
-static DECLARE_MUTEX(v9fs_mux_task_lock);
+static DEFINE_MUTEX(v9fs_mux_task_lock);
 static struct workqueue_struct *v9fs_mux_wq;
 
 static int v9fs_mux_num;
 
        dprintk(DEBUG_MUX, "mux %p muxnum %d procnum %d\n", m, v9fs_mux_num,
                v9fs_mux_poll_task_num);
-       up(&v9fs_mux_task_lock);
+       mutex_lock(&v9fs_mux_task_lock);
 
        n = v9fs_mux_calc_poll_procs(v9fs_mux_num + 1);
        if (n > v9fs_mux_poll_task_num) {
        }
 
        v9fs_mux_num++;
-       down(&v9fs_mux_task_lock);
+       mutex_unlock(&v9fs_mux_task_lock);
 
        return 0;
 }
        int i;
        struct v9fs_mux_poll_task *vpt;
 
-       up(&v9fs_mux_task_lock);
+       mutex_lock(&v9fs_mux_task_lock);
        vpt = m->poll_task;
        list_del(&m->mux_list);
        for(i = 0; i < ARRAY_SIZE(m->poll_waddr); i++) {
                v9fs_mux_poll_task_num--;
        }
        v9fs_mux_num--;
-       down(&v9fs_mux_task_lock);
+       mutex_unlock(&v9fs_mux_task_lock);
 }
 
 /**