--- buffer.c.0	Mon Dec 13 16:57:15 1999
+++ buffer.c	Mon Dec 13 16:57:31 1999
@@ -347,7 +347,6 @@
 	struct inode * inode;
 	int err;
 
-	lock_kernel();
 	err = -EBADF;
 	file = fget(fd);
 	if (!file)
@@ -366,14 +365,15 @@
 		goto out_putf;
 
 	/* We need to protect against concurrent writers.. */
+	lock_kernel();
 	down(&inode->i_sem);
 	err = file->f_op->fsync(file, dentry);
 	up(&inode->i_sem);
+	unlock_kernel();
 
 out_putf:
 	fput(file);
 out:
-	unlock_kernel();
 	return err;
 }
 
