diff -u --recursive --new-file linux-2.5.3-fix_put/fs/nfs/read.c linux-2.5.3-fix_mapping/fs/nfs/read.c --- linux-2.5.3-fix_put/fs/nfs/read.c Thu Jan 31 16:05:53 2002 +++ linux-2.5.3-fix_mapping/fs/nfs/read.c Thu Jan 31 16:06:40 2002 @@ -452,19 +452,9 @@ int nfs_readpage(struct file *file, struct page *page) { - struct inode *inode; + struct inode *inode = page->mapping->host; int error; - if (!file) { - struct address_space *mapping = page->mapping; - if (!mapping) - BUG(); - inode = mapping->host; - } else - inode = file->f_dentry->d_inode; - if (!inode) - BUG(); - dprintk("NFS: nfs_readpage (%p %ld@%lu)\n", page, PAGE_CACHE_SIZE, page->index); /* diff -u --recursive --new-file linux-2.5.3-fix_put/fs/nfs/write.c linux-2.5.3-fix_mapping/fs/nfs/write.c --- linux-2.5.3-fix_put/fs/nfs/write.c Thu Jan 31 16:05:53 2002 +++ linux-2.5.3-fix_mapping/fs/nfs/write.c Thu Jan 31 16:06:40 2002 @@ -239,17 +239,11 @@ int nfs_writepage(struct page *page) { - struct inode *inode; + struct inode *inode = page->mapping->host; unsigned long end_index; unsigned offset = PAGE_CACHE_SIZE; int err; - struct address_space *mapping = page->mapping; - if (!mapping) - BUG(); - inode = mapping->host; - if (!inode) - BUG(); end_index = inode->i_size >> PAGE_CACHE_SHIFT; /* Ensure we've flushed out any previous writes */ @@ -769,7 +763,7 @@ int nfs_flush_incompatible(struct file *file, struct page *page) { - struct inode *inode = file->f_dentry->d_inode; + struct inode *inode = page->mapping->host; struct nfs_page *req; int status = 0; /* @@ -799,7 +793,7 @@ nfs_updatepage(struct file *file, struct page *page, unsigned int offset, unsigned int count) { struct dentry *dentry = file->f_dentry; - struct inode *inode = dentry->d_inode; + struct inode *inode = page->mapping->host; struct nfs_page *req; loff_t end; int status = 0;