diff -urN -X dontdiff linux/fs/buffer.c vmalloc/fs/buffer.c
--- linux/fs/buffer.c   Mon Dec 20 22:52:57 1999
+++ vmalloc/fs/buffer.c Wed Dec 22 09:02:18 1999
@@ -345,7 +345,6 @@
       struct inode * inode;
       int err;

-       lock_kernel();
       err = -EBADF;
       file = fget(fd);
       if (!file)
@@ -365,13 +364,14 @@

       /* We need to protect against concurrent writers.. */
       down(&inode->i_sem);
+       lock_kernel();
       err = file->f_op->fsync(file, dentry);
+       unlock_kernel();
       up(&inode->i_sem);

out_putf:
       fput(file);
out:
-       unlock_kernel();
       return err;
}

@@ -382,7 +382,6 @@
       struct inode * inode;
       int err;

-       lock_kernel();
       err = -EBADF;
       file = fget(fd);
       if (!file)
@@ -402,13 +401,14 @@

       /* this needs further work, at the moment it is identical to fsync() */
       down(&inode->i_sem);
+       lock_kernel();
       err = file->f_op->fsync(file, dentry);
+       unlock_kernel();
       up(&inode->i_sem);

out_putf:
       fput(file);
out:
-       unlock_kernel();
       return err;
}

diff -urN -X dontdiff linux/include/linux/mm.h vmalloc/include/linux/mm.h
--- linux/include/linux/mm.h    Tue Dec 21 00:01:14 1999
+++ vmalloc/include/linux/mm.h  Wed Dec 22 09:05:53 1999
@@ -244,8 +244,14 @@
 * The following discussion applies only to them.
 *
 * A page may belong to an inode's memory mapping. In this case,
- * page->inode is the pointer to the inode, and page->offset is the
- * file offset of the page (not necessarily a multiple of PAGE_SIZE).
+ * page->inode is the pointer to the inode, and page->index is the
+ * file offset of the page in PAGE_CACHE_SIZE (not PAGE_SIZE!) units.
+ * Although currently (2.3.34) PAGE_SIZE == PAGE_CACHE_SIZE, i.e. there
+ * happens to be one page per page cache entry and MM code can't hanlde
+ * anything else, this may well change. The link to the old page->offset
+ * is given by:
+ *
+ *         page->index == (page->offset >> PAGE_CACHE_SHIFT);
 *
 * A page may have buffers allocated to it. In this case,
 * page->buffers is a circular list of these buffer heads. Else,