diff -urN linux.00/include/linux/fs.h linux.00.diff/include/linux/fs.h
--- linux.00/include/linux/fs.h	Tue Jan 15 22:31:37 2002
+++ linux.00.diff/include/linux/fs.h	Tue Jan 15 22:32:01 2002
@@ -824,7 +824,9 @@
 	struct module *owner;
 	loff_t (*llseek) (struct file *, loff_t, int);
 	ssize_t (*read) (struct file *, char *, size_t, loff_t *);
+	ssize_t (*new_read) (struct file *, char *, size_t, loff_t *, int);
 	ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
+	ssize_t (*new_write) (struct file *, const char *, size_t, loff_t *, int);
 	int (*readdir) (struct file *, void *, filldir_t);
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
@@ -1441,6 +1443,7 @@
 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
 extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
 extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
+extern ssize_t generic_file_new_read(struct file *, char *, size_t, loff_t *, int);
 extern ssize_t generic_file_write(struct file *, const char *, size_t, loff_t *);
 extern void do_generic_file_read(struct file *, loff_t *, read_descriptor_t *, read_actor_t, int);
 extern int generic_file_kvec_read(struct file *file, kvec_cb_t cb, size_t size, loff_t pos);
diff -urN linux.00/mm/filemap.c linux.00.diff/mm/filemap.c
--- linux.00/mm/filemap.c	Mon Jan 14 23:22:39 2002
+++ linux.00.diff/mm/filemap.c	Tue Jan 15 22:32:01 2002
@@ -1433,6 +1433,11 @@
  */
 ssize_t generic_file_read(struct file * filp, char * buf, size_t count, loff_t *ppos)
 {
+	return generic_file_new_read(filp, buf, count, ppos, 0);
+}
+
+ssize_t generic_file_new_read(struct file * filp, char * buf, size_t count, loff_t *ppos, int flags)
+{
 	ssize_t retval;
 
 	retval = -EFAULT;
@@ -1446,7 +1451,7 @@
 			desc.count = count;
 			desc.buf = buf;
 			desc.error = 0;
-			do_generic_file_read(filp, ppos, &desc, file_read_actor, 0);
+			do_generic_file_read(filp, ppos, &desc, file_read_actor, flags);
 
 			retval = desc.written;
 			if (!retval)