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)