diff --git a/fs/coda/pioctl.c b/fs/coda/pioctl.c
index 773f2ce..96ace2c 100644
--- a/fs/coda/pioctl.c
+++ b/fs/coda/pioctl.c
@@ -23,10 +23,12 @@
 #include <linux/coda_fs_i.h>
 #include <linux/coda_psdev.h>
 
+#include <linux/smp_lock.h>
+
 /* pioctl ops */
 static int coda_ioctl_permission(struct inode *inode, int mask);
-static int coda_pioctl(struct inode * inode, struct file * filp, 
-                       unsigned int cmd, unsigned long user_data);
+static long coda_pioctl(struct file *filp, unsigned int cmd,
+			unsigned long user_data);
 
 /* exported from this file */
 const struct inode_operations coda_ioctl_inode_operations =
@@ -37,7 +39,7 @@
 
 const struct file_operations coda_ioctl_operations = {
 	.owner		= THIS_MODULE,
-	.ioctl		= coda_pioctl,
+	.unlocked_ioctl	= coda_pioctl,
 };
 
 /* the coda pioctl inode ops */
@@ -46,40 +48,43 @@
 	return (mask & MAY_EXEC) ? -EACCES : 0;
 }
 
-static int coda_pioctl(struct inode * inode, struct file * filp, 
-                       unsigned int cmd, unsigned long user_data)
+static long coda_pioctl(struct file *filp, unsigned int cmd,
+			unsigned long user_data)
 {
 	struct path path;
         int error;
 	struct PioctlData data;
+	struct inode *inode = filp->f_dentry->d_inode;
         struct inode *target_inode = NULL;
         struct coda_inode_info *cnp;
 
+	lock_kernel();
+
         /* get the Pioctl data arguments from user space */
         if (copy_from_user(&data, (void __user *)user_data, sizeof(data))) {
-	    return -EINVAL;
+		error = -EINVAL;
+		goto out;
 	}
        
         /* 
          * Look up the pathname. Note that the pathname is in 
          * user memory, and namei takes care of this
          */
-        if (data.follow) {
+	if (data.follow)
                 error = user_path(data.path, &path);
-	} else {
+	else
 	        error = user_lpath(data.path, &path);
-	}
-		
-	if ( error ) {
-		return error;
-        } else {
+
+	if (error)
+		goto out;
+	else
 		target_inode = path.dentry->d_inode;
-	}
-	
+
 	/* return if it is not a Coda inode */
 	if ( target_inode->i_sb != inode->i_sb ) {
 		path_put(&path);
-	        return  -EINVAL;
+		error = -EINVAL;
+		goto out;
 	}
 
 	/* now proceed to make the upcall */
@@ -88,6 +93,8 @@
 	error = venus_pioctl(inode->i_sb, &(cnp->c_fid), cmd, &data);
 
 	path_put(&path);
+
+out:
+	unlock_kernel();
         return error;
 }
-
