diff -ur /mnt/fs3/linux-orig/fs/adfs/inode.c linux/fs/adfs/inode.c --- /mnt/fs3/linux-orig/fs/adfs/inode.c Mon May 8 00:35:37 2000 +++ linux/fs/adfs/inode.c Mon May 8 01:13:57 2000 @@ -54,7 +54,7 @@ return block_write_full_page(page, adfs_get_block); } -static int adfs_readpage(struct dentry *dentry, struct page *page) +static int adfs_readpage(struct file *file, struct page *page) { return block_read_full_page(page, adfs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/affs/file.c linux/fs/affs/file.c --- /mnt/fs3/linux-orig/fs/affs/file.c Mon May 8 00:35:35 2000 +++ linux/fs/affs/file.c Mon May 8 01:13:57 2000 @@ -342,7 +342,7 @@ { return block_write_full_page(page,affs_get_block); } -static int affs_readpage(struct dentry *dentry, struct page *page) +static int affs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,affs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/affs/symlink.c linux/fs/affs/symlink.c --- /mnt/fs3/linux-orig/fs/affs/symlink.c Mon May 8 00:35:35 2000 +++ linux/fs/affs/symlink.c Mon May 8 01:13:57 2000 @@ -15,10 +15,10 @@ #include #include -static int affs_symlink_readpage(struct dentry *dentry, struct page *page) +static int affs_symlink_readpage(struct file *file, struct page *page) { struct buffer_head *bh; - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; char *link = (char*)kmap(page); struct slink_front *lf; int err; diff -ur /mnt/fs3/linux-orig/fs/bfs/file.c linux/fs/bfs/file.c --- /mnt/fs3/linux-orig/fs/bfs/file.c Mon May 8 00:35:37 2000 +++ linux/fs/bfs/file.c Mon May 8 01:13:57 2000 @@ -132,7 +132,7 @@ return block_write_full_page(page, bfs_get_block); } -static int bfs_readpage(struct dentry *dentry, struct page *page) +static int bfs_readpage(struct file *file, struct page *page) { return block_read_full_page(page, bfs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/coda/symlink.c linux/fs/coda/symlink.c --- /mnt/fs3/linux-orig/fs/coda/symlink.c Mon May 8 00:35:36 2000 +++ linux/fs/coda/symlink.c Mon May 8 01:15:05 2000 @@ -22,9 +22,9 @@ #include #include -static int coda_symlink_filler(struct dentry *dentry, struct page *page) +static int coda_symlink_filler(struct file *file, struct page *page) { - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; int error; struct coda_inode_info *cnp; unsigned int len = PAGE_SIZE; diff -ur /mnt/fs3/linux-orig/fs/cramfs/inode.c linux/fs/cramfs/inode.c --- /mnt/fs3/linux-orig/fs/cramfs/inode.c Mon May 8 00:35:38 2000 +++ linux/fs/cramfs/inode.c Mon May 8 01:15:05 2000 @@ -303,9 +303,9 @@ return NULL; } -static int cramfs_readpage(struct dentry *dentry, struct page * page) +static int cramfs_readpage(struct file *file, struct page * page) { - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; u32 maxblock, bytes_filled; maxblock = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; diff -ur /mnt/fs3/linux-orig/fs/efs/inode.c linux/fs/efs/inode.c --- /mnt/fs3/linux-orig/fs/efs/inode.c Mon May 8 00:35:37 2000 +++ linux/fs/efs/inode.c Mon May 8 01:15:05 2000 @@ -11,7 +11,7 @@ #include extern int efs_get_block(struct inode *, long, struct buffer_head *, int); -static int efs_readpage(struct dentry *dentry, struct page *page) +static int efs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,efs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/efs/symlink.c linux/fs/efs/symlink.c --- /mnt/fs3/linux-orig/fs/efs/symlink.c Mon May 8 00:35:37 2000 +++ linux/fs/efs/symlink.c Mon May 8 01:15:05 2000 @@ -10,11 +10,11 @@ #include #include -static int efs_symlink_readpage(struct dentry *dentry, struct page *page) +static int efs_symlink_readpage(struct file *file, struct page *page) { char *link = (char*)kmap(page); struct buffer_head * bh; - struct inode * inode = dentry->d_inode; + struct inode * inode = (struct inode*)page->mapping->host; efs_block_t size = inode->i_size; int err; diff -ur /mnt/fs3/linux-orig/fs/ext2/inode.c linux/fs/ext2/inode.c --- /mnt/fs3/linux-orig/fs/ext2/inode.c Mon May 8 00:35:33 2000 +++ linux/fs/ext2/inode.c Mon May 8 01:15:05 2000 @@ -624,7 +624,7 @@ { return block_write_full_page(page,ext2_get_block); } -static int ext2_readpage(struct dentry *dentry, struct page *page) +static int ext2_readpage(struct file *file, struct page *page) { return block_read_full_page(page,ext2_get_block); } diff -ur /mnt/fs3/linux-orig/fs/fat/inode.c linux/fs/fat/inode.c --- /mnt/fs3/linux-orig/fs/fat/inode.c Mon May 8 00:35:34 2000 +++ linux/fs/fat/inode.c Mon May 8 01:15:05 2000 @@ -733,7 +733,7 @@ { return block_write_full_page(page,fat_get_block); } -static int fat_readpage(struct dentry *dentry, struct page *page) +static int fat_readpage(struct file *file, struct page *page) { return block_read_full_page(page,fat_get_block); } diff -ur /mnt/fs3/linux-orig/fs/hfs/inode.c linux/fs/hfs/inode.c --- /mnt/fs3/linux-orig/fs/hfs/inode.c Mon May 8 00:35:37 2000 +++ linux/fs/hfs/inode.c Mon May 8 01:15:05 2000 @@ -221,7 +221,7 @@ { return block_write_full_page(page,hfs_get_block); } -static int hfs_readpage(struct dentry *dentry, struct page *page) +static int hfs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,hfs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/hpfs/file.c linux/fs/hpfs/file.c --- /mnt/fs3/linux-orig/fs/hpfs/file.c Mon May 8 00:35:33 2000 +++ linux/fs/hpfs/file.c Mon May 8 01:15:05 2000 @@ -90,7 +90,7 @@ { return block_write_full_page(page,hpfs_get_block); } -static int hpfs_readpage(struct dentry *dentry, struct page *page) +static int hpfs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,hpfs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/hpfs/hpfs_fn.h linux/fs/hpfs/hpfs_fn.h --- /mnt/fs3/linux-orig/fs/hpfs/hpfs_fn.h Mon May 8 00:35:33 2000 +++ linux/fs/hpfs/hpfs_fn.h Mon May 8 01:15:05 2000 @@ -301,7 +301,7 @@ int hpfs_symlink(struct inode *, struct dentry *, const char *); int hpfs_unlink(struct inode *, struct dentry *); int hpfs_rmdir(struct inode *, struct dentry *); -int hpfs_symlink_readpage(struct dentry *, struct page *); +int hpfs_symlink_readpage(struct file *, struct page *); int hpfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); /* super.c */ diff -ur /mnt/fs3/linux-orig/fs/hpfs/namei.c linux/fs/hpfs/namei.c --- /mnt/fs3/linux-orig/fs/hpfs/namei.c Mon May 8 00:35:33 2000 +++ linux/fs/hpfs/namei.c Mon May 8 01:15:05 2000 @@ -393,10 +393,10 @@ return r == 2 ? -ENOSPC : r == 1 ? -EFSERROR : 0; } -int hpfs_symlink_readpage(struct dentry *dentry, struct page *page) +int hpfs_symlink_readpage(struct file *file, struct page *page) { char *link = (char*)kmap(page); - struct inode *i = dentry->d_inode; + struct inode *i = (struct inode*)page->mapping->host; struct fnode *fnode; struct buffer_head *bh; int err; diff -ur /mnt/fs3/linux-orig/fs/isofs/inode.c linux/fs/isofs/inode.c --- /mnt/fs3/linux-orig/fs/isofs/inode.c Mon May 8 00:35:32 2000 +++ linux/fs/isofs/inode.c Mon May 8 01:15:05 2000 @@ -981,7 +981,7 @@ return 0; } -static int isofs_readpage(struct dentry *dentry, struct page *page) +static int isofs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,isofs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/isofs/rock.c linux/fs/isofs/rock.c --- /mnt/fs3/linux-orig/fs/isofs/rock.c Mon May 8 00:35:32 2000 +++ linux/fs/isofs/rock.c Mon May 8 01:15:05 2000 @@ -445,9 +445,9 @@ /* readpage() for symlinks: reads symlink contents into the page and either makes it uptodate and returns 0 or returns error (-EIO) */ -static int rock_ridge_symlink_readpage(struct dentry *dentry, struct page *page) +static int rock_ridge_symlink_readpage(struct file *file, struct page *page) { - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; char *link = (char*)kmap(page); unsigned long bufsize = ISOFS_BUFFER_SIZE(inode); unsigned char bufbits = ISOFS_BUFFER_BITS(inode); diff -ur /mnt/fs3/linux-orig/fs/minix/inode.c linux/fs/minix/inode.c --- /mnt/fs3/linux-orig/fs/minix/inode.c Mon May 8 00:35:32 2000 +++ linux/fs/minix/inode.c Mon May 8 01:15:05 2000 @@ -1010,7 +1010,7 @@ { return block_write_full_page(page,minix_get_block); } -static int minix_readpage(struct dentry *dentry, struct page *page) +static int minix_readpage(struct file *file, struct page *page) { return block_read_full_page(page,minix_get_block); } diff -ur /mnt/fs3/linux-orig/fs/ncpfs/symlink.c linux/fs/ncpfs/symlink.c --- /mnt/fs3/linux-orig/fs/ncpfs/symlink.c Mon May 8 00:35:34 2000 +++ linux/fs/ncpfs/symlink.c Mon May 8 01:15:05 2000 @@ -43,9 +43,9 @@ /* ----- read a symbolic link ------------------------------------------ */ -static int ncp_symlink_readpage(struct dentry *dentry, struct page *page) +static int ncp_symlink_readpage(struct file *file, struct page *page) { - struct inode *inode=dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; int error, length, len, cnt; char *link; char *buf = (char*)kmap(page); diff -ur /mnt/fs3/linux-orig/fs/nfs/read.c linux/fs/nfs/read.c --- /mnt/fs3/linux-orig/fs/nfs/read.c Mon May 8 00:35:33 2000 +++ linux/fs/nfs/read.c Mon May 8 01:23:05 2000 @@ -472,8 +472,9 @@ * - The server is congested. */ int -nfs_readpage(struct dentry *dentry, struct page *page) +nfs_readpage(struct file *file, struct page *page) { + struct dentry *dentry = file->f_dentry; struct inode *inode = dentry->d_inode; int error; diff -ur /mnt/fs3/linux-orig/fs/ntfs/fs.c linux/fs/ntfs/fs.c --- /mnt/fs3/linux-orig/fs/ntfs/fs.c Mon May 8 00:35:37 2000 +++ linux/fs/ntfs/fs.c Mon May 8 01:16:49 2000 @@ -591,7 +591,7 @@ { return block_write_full_page(page,ntfs_get_block); } -static int ntfs_readpage(struct dentry *dentry, struct page *page) +static int ntfs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,ntfs_get_block); } diff -ur /mnt/fs3/linux-orig/fs/qnx4/inode.c linux/fs/qnx4/inode.c --- /mnt/fs3/linux-orig/fs/qnx4/inode.c Mon May 8 00:35:35 2000 +++ linux/fs/qnx4/inode.c Mon May 8 01:16:49 2000 @@ -414,7 +414,7 @@ { return block_write_full_page(page,qnx4_get_block); } -static int qnx4_readpage(struct dentry *dentry, struct page *page) +static int qnx4_readpage(struct file *file, struct page *page) { return block_read_full_page(page,qnx4_get_block); } diff -ur /mnt/fs3/linux-orig/fs/ramfs/inode.c linux/fs/ramfs/inode.c --- /mnt/fs3/linux-orig/fs/ramfs/inode.c Mon May 8 00:35:39 2000 +++ linux/fs/ramfs/inode.c Mon May 8 01:17:33 2000 @@ -62,7 +62,7 @@ * Read a page. Again trivial. If it didn't already exist * in the page cache, it is zero-filled. */ -static int ramfs_readpage(struct dentry *dentry, struct page * page) +static int ramfs_readpage(struct file *file, struct page * page) { if (!Page_Uptodate(page)) { memset((void *) page_address(page), 0, PAGE_CACHE_SIZE); diff -ur /mnt/fs3/linux-orig/fs/romfs/inode.c linux/fs/romfs/inode.c --- /mnt/fs3/linux-orig/fs/romfs/inode.c Mon May 8 00:35:35 2000 +++ linux/fs/romfs/inode.c Mon May 8 01:17:33 2000 @@ -388,9 +388,9 @@ */ static int -romfs_readpage(struct dentry * dentry, struct page * page) +romfs_readpage(struct file *file, struct page * page) { - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; unsigned long buf; unsigned long offset, avail, readlen; int result = -EIO; diff -ur /mnt/fs3/linux-orig/fs/smbfs/file.c linux/fs/smbfs/file.c --- /mnt/fs3/linux-orig/fs/smbfs/file.c Mon May 8 00:35:34 2000 +++ linux/fs/smbfs/file.c Mon May 8 01:18:10 2000 @@ -98,9 +98,10 @@ } static int -smb_readpage(struct dentry *dentry, struct page *page) +smb_readpage(struct file *file, struct page *page) { int error; + struct dentry *dentry = file->f_dentry; pr_debug("SMB: smb_readpage %08lx\n", page_address(page)); #ifdef SMBFS_PARANOIA diff -ur /mnt/fs3/linux-orig/fs/sysv/inode.c linux/fs/sysv/inode.c --- /mnt/fs3/linux-orig/fs/sysv/inode.c Mon May 8 00:35:34 2000 +++ linux/fs/sysv/inode.c Mon May 8 01:18:10 2000 @@ -943,7 +943,7 @@ { return block_write_full_page(page,sysv_get_block); } -static int sysv_readpage(struct dentry *dentry, struct page *page) +static int sysv_readpage(struct file *file, struct page *page) { return block_read_full_page(page,sysv_get_block); } diff -ur /mnt/fs3/linux-orig/fs/udf/file.c linux/fs/udf/file.c --- /mnt/fs3/linux-orig/fs/udf/file.c Mon May 8 00:35:37 2000 +++ linux/fs/udf/file.c Mon May 8 01:18:35 2000 @@ -42,7 +42,7 @@ #include "udf_i.h" #include "udf_sb.h" -static int udf_adinicb_readpage(struct dentry *dentry, struct page * page) +static int udf_adinicb_readpage(struct file *file, struct page * page) { struct inode *inode = (struct inode *)page->mapping->host; diff -ur /mnt/fs3/linux-orig/fs/udf/inode.c linux/fs/udf/inode.c --- /mnt/fs3/linux-orig/fs/udf/inode.c Mon May 8 00:35:37 2000 +++ linux/fs/udf/inode.c Mon May 8 01:18:48 2000 @@ -130,7 +130,7 @@ return block_write_full_page(page, udf_get_block); } -static int udf_readpage(struct dentry *dentry, struct page *page) +static int udf_readpage(struct file *file, struct page *page) { return block_read_full_page(page, udf_get_block); } diff -ur /mnt/fs3/linux-orig/fs/udf/symlink.c linux/fs/udf/symlink.c --- /mnt/fs3/linux-orig/fs/udf/symlink.c Mon May 8 00:35:37 2000 +++ linux/fs/udf/symlink.c Mon May 8 01:18:48 2000 @@ -76,9 +76,9 @@ p[0] = '\0'; } -static int udf_symlink_filler(struct dentry * dentry, struct page *page) +static int udf_symlink_filler(struct file *file, struct page *page) { - struct inode *inode = dentry->d_inode; + struct inode *inode = (struct inode*)page->mapping->host; struct buffer_head *bh = NULL; char *symlink; int err = -EIO; diff -ur /mnt/fs3/linux-orig/fs/ufs/inode.c linux/fs/ufs/inode.c --- /mnt/fs3/linux-orig/fs/ufs/inode.c Mon May 8 00:35:34 2000 +++ linux/fs/ufs/inode.c Mon May 8 01:18:48 2000 @@ -544,7 +544,7 @@ { return block_write_full_page(page,ufs_getfrag_block); } -static int ufs_readpage(struct dentry *dentry, struct page *page) +static int ufs_readpage(struct file *file, struct page *page) { return block_read_full_page(page,ufs_getfrag_block); } diff -ur /mnt/fs3/linux-orig/include/linux/fs.h linux/include/linux/fs.h --- /mnt/fs3/linux-orig/include/linux/fs.h Mon May 8 00:35:40 2000 +++ linux/include/linux/fs.h Mon May 8 01:19:16 2000 @@ -339,7 +339,7 @@ struct address_space_operations { int (*writepage)(struct file *, struct dentry *, struct page *); - int (*readpage)(struct dentry *, struct page *); + int (*readpage)(struct file *, struct page *); int (*sync_page)(struct page *); int (*prepare_write)(struct file *, struct page *, unsigned, unsigned); int (*commit_write)(struct file *, struct page *, unsigned, unsigned); @@ -1085,7 +1085,6 @@ extern int brw_page(int, struct page *, kdev_t, int [], int); -typedef int (*writepage_t)(struct file *, struct page *, unsigned long, unsigned long, const char *); typedef int (get_block_t)(struct inode*,long,struct buffer_head*,int); /* Generic buffer handling for block filesystems.. */ diff -ur /mnt/fs3/linux-orig/include/linux/nfs_fs.h linux/include/linux/nfs_fs.h --- /mnt/fs3/linux-orig/include/linux/nfs_fs.h Mon May 8 00:35:41 2000 +++ linux/include/linux/nfs_fs.h Mon May 8 01:19:46 2000 @@ -232,7 +232,7 @@ /* * linux/fs/nfs/read.c */ -extern int nfs_readpage(struct dentry *, struct page *); +extern int nfs_readpage(struct file *, struct page *); extern int nfs_pagein_inode(struct inode *, unsigned long, unsigned int); extern int nfs_pagein_timeout(struct inode *); diff -ur /mnt/fs3/linux-orig/mm/filemap.c linux/mm/filemap.c --- /mnt/fs3/linux-orig/mm/filemap.c Mon May 8 00:35:40 2000 +++ linux/mm/filemap.c Mon May 8 01:20:20 2000 @@ -584,7 +584,7 @@ return -ENOMEM; if (!add_to_page_cache_unique(page, mapping, offset, hash)) { - int error = mapping->a_ops->readpage(file->f_dentry, page); + int error = mapping->a_ops->readpage(file, page); page_cache_release(page); return error; } @@ -1119,7 +1119,7 @@ readpage: /* ... and start the actual read. The read will unlock the page. */ - error = mapping->a_ops->readpage(filp->f_dentry, page); + error = mapping->a_ops->readpage(filp, page); if (!error) { if (Page_Uptodate(page)) @@ -1501,7 +1501,7 @@ goto success; } - if (!mapping->a_ops->readpage(file->f_dentry, page)) { + if (!mapping->a_ops->readpage(file, page)) { wait_on_page(page); if (Page_Uptodate(page)) goto success; @@ -1519,7 +1519,7 @@ goto success; } ClearPageError(page); - if (!mapping->a_ops->readpage(file->f_dentry, page)) { + if (!mapping->a_ops->readpage(file, page)) { wait_on_page(page); if (Page_Uptodate(page)) goto success; --- /mnt/fs3/linux-orig/fs/namei.c Mon May 8 00:35:32 2000 +++ linux/fs/namei.c Mon May 8 22:14:48 2000 @@ -1765,7 +1765,7 @@ struct page * page; struct address_space *mapping = dentry->d_inode->i_mapping; page = read_cache_page(mapping, 0, (filler_t *)mapping->a_ops->readpage, - dentry); + NULL); if (IS_ERR(page)) goto sync_fail; wait_on_page(page);