diff -u --recursive --new-file linux-2.5.33-smb/Documentation/filesystems/Locking linux-2.5.33-vfs2/Documentation/filesystems/Locking --- linux-2.5.33-smb/Documentation/filesystems/Locking Wed Jul 3 02:22:36 2002 +++ linux-2.5.33-vfs2/Documentation/filesystems/Locking Sun Sep 8 22:56:14 2002 @@ -132,7 +132,7 @@ --------------------------- address_space_operations -------------------------- prototypes: int (*writepage)(struct page *); - int (*readpage)(struct file *, struct page *); + int (*readpage)(struct vfs_cred *, struct page *); int (*sync_page)(struct page *); int (*writepages)(struct address_space *, int *nr_to_write); int (*vm_writeback)(struct page *, int *nr_to_write); diff -u --recursive --new-file linux-2.5.33-smb/Documentation/filesystems/vfs.txt linux-2.5.33-vfs2/Documentation/filesystems/vfs.txt --- linux-2.5.33-smb/Documentation/filesystems/vfs.txt Mon Jun 3 19:17:21 2002 +++ linux-2.5.33-vfs2/Documentation/filesystems/vfs.txt Sun Sep 8 22:56:14 2002 @@ -263,7 +263,7 @@ struct inode *, struct dentry *); int (*readlink) (struct dentry *, char *,int); struct dentry * (*follow_link) (struct dentry *, struct dentry *); - int (*readpage) (struct file *, struct page *); + int (*readpage) (struct vfs_cred *, struct page *); int (*writepage) (struct file *, struct page *); int (*bmap) (struct inode *,int); void (*truncate) (struct inode *); diff -u --recursive --new-file linux-2.5.33-smb/drivers/block/rd.c linux-2.5.33-vfs2/drivers/block/rd.c --- linux-2.5.33-smb/drivers/block/rd.c Mon Jul 29 01:59:05 2002 +++ linux-2.5.33-vfs2/drivers/block/rd.c Sun Sep 8 22:56:14 2002 @@ -106,7 +106,7 @@ * 2000 Transmeta Corp. * aops copied from ramfs. */ -static int ramdisk_readpage(struct file *file, struct page * page) +static int ramdisk_readpage(struct vfs_cred *vfscred, struct page * page) { if (!PageUptodate(page)) { memset(kmap(page), 0, PAGE_CACHE_SIZE); diff -u --recursive --new-file linux-2.5.33-smb/fs/adfs/inode.c linux-2.5.33-vfs2/fs/adfs/inode.c --- linux-2.5.33-smb/fs/adfs/inode.c Sat Aug 3 12:12:00 2002 +++ linux-2.5.33-vfs2/fs/adfs/inode.c Sun Sep 8 22:56:14 2002 @@ -56,7 +56,7 @@ return block_write_full_page(page, adfs_get_block); } -static int adfs_readpage(struct file *file, struct page *page) +static int adfs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page, adfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/affs/file.c linux-2.5.33-vfs2/fs/affs/file.c --- linux-2.5.33-smb/fs/affs/file.c Sat Jul 27 17:21:19 2002 +++ linux-2.5.33-vfs2/fs/affs/file.c Sun Sep 8 22:56:14 2002 @@ -412,7 +412,7 @@ { return block_write_full_page(page, affs_get_block); } -static int affs_readpage(struct file *file, struct page *page) +static int affs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page, affs_get_block); } @@ -506,7 +506,7 @@ } static int -affs_do_readpage_ofs(struct file *file, struct page *page, unsigned from, unsigned to) +affs_do_readpage_ofs(struct vfs_cred *vfscred, struct page *page, unsigned from, unsigned to) { struct inode *inode = page->mapping->host; struct super_block *sb = inode->i_sb; @@ -611,7 +611,7 @@ } static int -affs_readpage_ofs(struct file *file, struct page *page) +affs_readpage_ofs(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; u32 to; @@ -624,7 +624,7 @@ memset(page_address(page) + to, 0, PAGE_CACHE_SIZE - to); } - err = affs_do_readpage_ofs(file, page, 0, to); + err = affs_do_readpage_ofs(vfscred, page, 0, to); if (!err) SetPageUptodate(page); unlock_page(page); @@ -651,7 +651,7 @@ return 0; if (from) { - err = affs_do_readpage_ofs(file, page, 0, from); + err = affs_do_readpage_ofs(vfscred, page, 0, from); if (err) return err; } @@ -662,7 +662,7 @@ tmp = size & ~PAGE_CACHE_MASK; else tmp = PAGE_CACHE_SIZE; - err = affs_do_readpage_ofs(file, page, to, tmp); + err = affs_do_readpage_ofs(vfscred, page, to, tmp); } } return err; diff -u --recursive --new-file linux-2.5.33-smb/fs/affs/symlink.c linux-2.5.33-vfs2/fs/affs/symlink.c --- linux-2.5.33-smb/fs/affs/symlink.c Thu May 23 15:18:42 2002 +++ linux-2.5.33-vfs2/fs/affs/symlink.c Sun Sep 8 22:56:14 2002 @@ -17,7 +17,7 @@ #include #include -static int affs_symlink_readpage(struct file *file, struct page *page) +static int affs_symlink_readpage(struct vfs_cred *vfscred, struct page *page) { struct buffer_head *bh; struct inode *inode = page->mapping->host; diff -u --recursive --new-file linux-2.5.33-smb/fs/bfs/file.c linux-2.5.33-vfs2/fs/bfs/file.c --- linux-2.5.33-smb/fs/bfs/file.c Sat Jul 27 17:21:19 2002 +++ linux-2.5.33-vfs2/fs/bfs/file.c Sun Sep 8 22:56:14 2002 @@ -135,7 +135,7 @@ return block_write_full_page(page, bfs_get_block); } -static int bfs_readpage(struct file *file, struct page *page) +static int bfs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page, bfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/block_dev.c linux-2.5.33-vfs2/fs/block_dev.c --- linux-2.5.33-smb/fs/block_dev.c Sat Aug 31 23:57:58 2002 +++ linux-2.5.33-vfs2/fs/block_dev.c Sun Sep 8 22:56:15 2002 @@ -128,7 +128,7 @@ return block_write_full_page(page, blkdev_get_block); } -static int blkdev_readpage(struct file * file, struct page * page) +static int blkdev_readpage(struct vfs_cred * vfscred, struct page * page) { return block_read_full_page(page, blkdev_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/coda/symlink.c linux-2.5.33-vfs2/fs/coda/symlink.c --- linux-2.5.33-smb/fs/coda/symlink.c Mon May 20 16:52:48 2002 +++ linux-2.5.33-vfs2/fs/coda/symlink.c Sun Sep 8 22:56:15 2002 @@ -22,7 +22,7 @@ #include #include -static int coda_symlink_filler(struct file *file, struct page *page) +static int coda_symlink_filler(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; int error; diff -u --recursive --new-file linux-2.5.33-smb/fs/cramfs/inode.c linux-2.5.33-vfs2/fs/cramfs/inode.c --- linux-2.5.33-smb/fs/cramfs/inode.c Thu May 23 15:18:42 2002 +++ linux-2.5.33-vfs2/fs/cramfs/inode.c Sun Sep 8 22:56:15 2002 @@ -394,7 +394,7 @@ return NULL; } -static int cramfs_readpage(struct file *file, struct page * page) +static int cramfs_readpage(struct vfs_cred *vfscred, struct page * page) { struct inode *inode = page->mapping->host; u32 maxblock, bytes_filled; diff -u --recursive --new-file linux-2.5.33-smb/fs/driverfs/inode.c linux-2.5.33-vfs2/fs/driverfs/inode.c --- linux-2.5.33-smb/fs/driverfs/inode.c Sun Sep 8 20:05:44 2002 +++ linux-2.5.33-vfs2/fs/driverfs/inode.c Sun Sep 8 22:56:15 2002 @@ -56,7 +56,7 @@ static spinlock_t mount_lock = SPIN_LOCK_UNLOCKED; static int mount_count = 0; -static int driverfs_readpage(struct file *file, struct page * page) +static int driverfs_readpage(struct vfs_cred *vfscred, struct page * page) { if (!PageUptodate(page)) { memset(kmap(page), 0, PAGE_CACHE_SIZE); diff -u --recursive --new-file linux-2.5.33-smb/fs/efs/inode.c linux-2.5.33-vfs2/fs/efs/inode.c --- linux-2.5.33-smb/fs/efs/inode.c Thu May 23 15:18:43 2002 +++ linux-2.5.33-vfs2/fs/efs/inode.c Sun Sep 8 22:56:15 2002 @@ -15,7 +15,7 @@ extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int); -static int efs_readpage(struct file *file, struct page *page) +static int efs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,efs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/efs/symlink.c linux-2.5.33-vfs2/fs/efs/symlink.c --- linux-2.5.33-smb/fs/efs/symlink.c Thu May 23 15:18:44 2002 +++ linux-2.5.33-vfs2/fs/efs/symlink.c Sun Sep 8 22:56:15 2002 @@ -12,7 +12,7 @@ #include #include -static int efs_symlink_readpage(struct file *file, struct page *page) +static int efs_symlink_readpage(struct vfs_cred *vfscred, struct page *page) { char *link = kmap(page); struct buffer_head * bh; diff -u --recursive --new-file linux-2.5.33-smb/fs/ext2/inode.c linux-2.5.33-vfs2/fs/ext2/inode.c --- linux-2.5.33-smb/fs/ext2/inode.c Tue Aug 13 15:48:51 2002 +++ linux-2.5.33-vfs2/fs/ext2/inode.c Sun Sep 8 22:56:15 2002 @@ -582,7 +582,7 @@ return block_write_full_page(page,ext2_get_block); } -static int ext2_readpage(struct file *file, struct page *page) +static int ext2_readpage(struct vfs_cred *vfscred, struct page *page) { return mpage_readpage(page, ext2_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/ext3/inode.c linux-2.5.33-vfs2/fs/ext3/inode.c --- linux-2.5.33-smb/fs/ext3/inode.c Thu Aug 29 22:27:26 2002 +++ linux-2.5.33-vfs2/fs/ext3/inode.c Sun Sep 8 22:56:15 2002 @@ -1387,7 +1387,7 @@ return ret; } -static int ext3_readpage(struct file *file, struct page *page) +static int ext3_readpage(struct vfs_cred *vfscred, struct page *page) { return mpage_readpage(page, ext3_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/fat/inode.c linux-2.5.33-vfs2/fs/fat/inode.c --- linux-2.5.33-smb/fs/fat/inode.c Fri Jul 19 02:17:36 2002 +++ linux-2.5.33-vfs2/fs/fat/inode.c Sun Sep 8 22:56:15 2002 @@ -978,7 +978,7 @@ { return block_write_full_page(page,fat_get_block); } -static int fat_readpage(struct file *file, struct page *page) +static int fat_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,fat_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/freevxfs/vxfs_immed.c linux-2.5.33-vfs2/fs/freevxfs/vxfs_immed.c --- linux-2.5.33-smb/fs/freevxfs/vxfs_immed.c Tue Apr 30 00:18:35 2002 +++ linux-2.5.33-vfs2/fs/freevxfs/vxfs_immed.c Sun Sep 8 22:56:15 2002 @@ -42,7 +42,7 @@ static int vxfs_immed_readlink(struct dentry *, char *, int); static int vxfs_immed_follow_link(struct dentry *, struct nameidata *); -static int vxfs_immed_readpage(struct file *, struct page *); +static int vxfs_immed_readpage(struct vfs_cred *, struct page *); /* * Inode operations for immed symlinks. @@ -120,7 +120,7 @@ * @page is locked and will be unlocked. */ static int -vxfs_immed_readpage(struct file *fp, struct page *pp) +vxfs_immed_readpage(struct vfs_cred *vfscred, struct page *pp) { struct vxfs_inode_info *vip = VXFS_INO(pp->mapping->host); u_int64_t offset = pp->index << PAGE_CACHE_SHIFT; diff -u --recursive --new-file linux-2.5.33-smb/fs/freevxfs/vxfs_subr.c linux-2.5.33-vfs2/fs/freevxfs/vxfs_subr.c --- linux-2.5.33-smb/fs/freevxfs/vxfs_subr.c Thu May 23 15:18:47 2002 +++ linux-2.5.33-vfs2/fs/freevxfs/vxfs_subr.c Sun Sep 8 22:56:15 2002 @@ -42,7 +42,7 @@ #include "vxfs_extern.h" -static int vxfs_readpage(struct file *, struct page *); +static int vxfs_readpage(struct vfs_cred *, struct page *); static int vxfs_bmap(struct address_space *, long); struct address_space_operations vxfs_aops = { @@ -166,7 +166,7 @@ * @page is locked and will be unlocked. */ static int -vxfs_readpage(struct file *file, struct page *page) +vxfs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page, vxfs_getblk); } diff -u --recursive --new-file linux-2.5.33-smb/fs/hfs/inode.c linux-2.5.33-vfs2/fs/hfs/inode.c --- linux-2.5.33-smb/fs/hfs/inode.c Tue Jun 11 00:21:02 2002 +++ linux-2.5.33-vfs2/fs/hfs/inode.c Sun Sep 8 22:56:15 2002 @@ -233,7 +233,7 @@ { return block_write_full_page(page,hfs_get_block); } -static int hfs_readpage(struct file *file, struct page *page) +static int hfs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,hfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/hpfs/file.c linux-2.5.33-vfs2/fs/hpfs/file.c --- linux-2.5.33-smb/fs/hpfs/file.c Thu May 23 15:18:49 2002 +++ linux-2.5.33-vfs2/fs/hpfs/file.c Sun Sep 8 22:56:15 2002 @@ -102,7 +102,7 @@ { return block_write_full_page(page,hpfs_get_block); } -static int hpfs_readpage(struct file *file, struct page *page) +static int hpfs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,hpfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/hpfs/hpfs_fn.h linux-2.5.33-vfs2/fs/hpfs/hpfs_fn.h --- linux-2.5.33-smb/fs/hpfs/hpfs_fn.h Thu May 23 15:18:49 2002 +++ linux-2.5.33-vfs2/fs/hpfs/hpfs_fn.h Sun Sep 8 22:56:15 2002 @@ -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 file *, struct page *); +int hpfs_symlink_readpage(struct vfs_cred *, struct page *); int hpfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); static inline struct hpfs_inode_info *hpfs_i(struct inode *inode) diff -u --recursive --new-file linux-2.5.33-smb/fs/hpfs/namei.c linux-2.5.33-vfs2/fs/hpfs/namei.c --- linux-2.5.33-smb/fs/hpfs/namei.c Sun Sep 8 20:05:44 2002 +++ linux-2.5.33-vfs2/fs/hpfs/namei.c Sun Sep 8 22:56:15 2002 @@ -431,7 +431,7 @@ return r == 2 ? -ENOSPC : r == 1 ? -EFSERROR : 0; } -int hpfs_symlink_readpage(struct file *file, struct page *page) +int hpfs_symlink_readpage(struct vfs_cred *vfscred, struct page *page) { char *link = kmap(page); struct inode *i = page->mapping->host; diff -u --recursive --new-file linux-2.5.33-smb/fs/isofs/compress.c linux-2.5.33-vfs2/fs/isofs/compress.c --- linux-2.5.33-smb/fs/isofs/compress.c Thu May 23 15:18:50 2002 +++ linux-2.5.33-vfs2/fs/isofs/compress.c Sun Sep 8 22:56:15 2002 @@ -59,10 +59,10 @@ * per reference. We inject the additional pages into the page * cache as a form of readahead. */ -static int zisofs_readpage(struct file *file, struct page *page) +static int zisofs_readpage(struct vfs_cred *vfscred, struct page *page) { - struct inode *inode = file->f_dentry->d_inode; - struct address_space *mapping = inode->i_mapping; + struct address_space *mapping = page->mapping; + struct inode *inode = mapping->host; unsigned int maxpage, xpage, fpage, blockindex; unsigned long offset; unsigned long blockptr, blockendptr, cstart, cend, csize; diff -u --recursive --new-file linux-2.5.33-smb/fs/isofs/inode.c linux-2.5.33-vfs2/fs/isofs/inode.c --- linux-2.5.33-smb/fs/isofs/inode.c Fri May 24 17:08:23 2002 +++ linux-2.5.33-vfs2/fs/isofs/inode.c Sun Sep 8 22:56:15 2002 @@ -1052,7 +1052,7 @@ return sb_bread(inode->i_sb, blknr); } -static int isofs_readpage(struct file *file, struct page *page) +static int isofs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,isofs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/isofs/rock.c linux-2.5.33-vfs2/fs/isofs/rock.c --- linux-2.5.33-smb/fs/isofs/rock.c Thu May 23 15:18:50 2002 +++ linux-2.5.33-vfs2/fs/isofs/rock.c Sun Sep 8 22:56:15 2002 @@ -490,7 +490,7 @@ /* 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 file *file, struct page *page) +static int rock_ridge_symlink_readpage(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; char *link = kmap(page); diff -u --recursive --new-file linux-2.5.33-smb/fs/jffs/inode-v23.c linux-2.5.33-vfs2/fs/jffs/inode-v23.c --- linux-2.5.33-smb/fs/jffs/inode-v23.c Sun Sep 8 20:05:44 2002 +++ linux-2.5.33-vfs2/fs/jffs/inode-v23.c Sun Sep 8 22:56:15 2002 @@ -735,7 +735,7 @@ /* Try to read a page of data from a file. */ static int -jffs_do_readpage_nolock(struct file *file, struct page *page) +jffs_do_readpage_nolock(struct vfs_cred *vfscred, struct page *page) { void *buf; unsigned long read_len; @@ -797,9 +797,9 @@ return result; } /* jffs_do_readpage_nolock() */ -static int jffs_readpage(struct file *file, struct page *page) +static int jffs_readpage(struct vfs_cred *vfscred, struct page *page) { - int ret = jffs_do_readpage_nolock(file, page); + int ret = jffs_do_readpage_nolock(vfscred, page); unlock_page(page); return ret; } @@ -1531,7 +1531,7 @@ /* Bugger that. We should make sure the page is uptodate */ if (!PageUptodate(page) && (from || to < PAGE_CACHE_SIZE)) - return jffs_do_readpage_nolock(filp, page); + return jffs_do_readpage_nolock(filp->f_cred, page); return 0; } /* jffs_prepare_write() */ diff -u --recursive --new-file linux-2.5.33-smb/fs/jffs2/file.c linux-2.5.33-vfs2/fs/jffs2/file.c --- linux-2.5.33-smb/fs/jffs2/file.c Mon Jul 29 10:49:35 2002 +++ linux-2.5.33-vfs2/fs/jffs2/file.c Sun Sep 8 22:56:15 2002 @@ -259,7 +259,7 @@ } -int jffs2_readpage (struct file *filp, struct page *pg) +int jffs2_readpage (struct vfs_cred *vfscred, struct page *pg) { struct jffs2_inode_info *f = JFFS2_INODE_INFO(pg->mapping->host); int ret; diff -u --recursive --new-file linux-2.5.33-smb/fs/jffs2/os-linux.h linux-2.5.33-vfs2/fs/jffs2/os-linux.h --- linux-2.5.33-smb/fs/jffs2/os-linux.h Tue Jul 23 15:08:23 2002 +++ linux-2.5.33-vfs2/fs/jffs2/os-linux.h Sun Sep 8 22:56:15 2002 @@ -118,7 +118,7 @@ int jffs2_setattr (struct dentry *dentry, struct iattr *iattr); int jffs2_do_readpage_nolock (struct inode *inode, struct page *pg); int jffs2_do_readpage_unlock (struct inode *inode, struct page *pg); -int jffs2_readpage (struct file *, struct page *); +int jffs2_readpage (struct vfs_cred *, struct page *); int jffs2_prepare_write (struct file *, struct page *, unsigned, unsigned); int jffs2_commit_write (struct file *, struct page *, unsigned, unsigned); diff -u --recursive --new-file linux-2.5.33-smb/fs/jfs/inode.c linux-2.5.33-vfs2/fs/jfs/inode.c --- linux-2.5.33-smb/fs/jfs/inode.c Mon Sep 2 00:45:36 2002 +++ linux-2.5.33-vfs2/fs/jfs/inode.c Sun Sep 8 22:56:15 2002 @@ -287,7 +287,7 @@ return mpage_writepages(mapping, nr_to_write, jfs_get_block); } -static int jfs_readpage(struct file *file, struct page *page) +static int jfs_readpage(struct vfs_cred *vfscred, struct page *page) { return mpage_readpage(page, jfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/minix/inode.c linux-2.5.33-vfs2/fs/minix/inode.c --- linux-2.5.33-smb/fs/minix/inode.c Fri May 24 17:08:23 2002 +++ linux-2.5.33-vfs2/fs/minix/inode.c Sun Sep 8 22:56:16 2002 @@ -320,7 +320,7 @@ { return block_write_full_page(page,minix_get_block); } -static int minix_readpage(struct file *file, struct page *page) +static int minix_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,minix_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/ncpfs/symlink.c linux-2.5.33-vfs2/fs/ncpfs/symlink.c --- linux-2.5.33-smb/fs/ncpfs/symlink.c Sun Aug 11 05:07:55 2002 +++ linux-2.5.33-vfs2/fs/ncpfs/symlink.c Sun Sep 8 22:56:16 2002 @@ -41,7 +41,7 @@ /* ----- read a symbolic link ------------------------------------------ */ -static int ncp_symlink_readpage(struct file *file, struct page *page) +static int ncp_symlink_readpage(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; int error, length, len; diff -u --recursive --new-file linux-2.5.33-smb/fs/nfs/read.c linux-2.5.33-vfs2/fs/nfs/read.c --- linux-2.5.33-smb/fs/nfs/read.c Sun Sep 8 22:54:40 2002 +++ linux-2.5.33-vfs2/fs/nfs/read.c Sun Sep 8 22:56:16 2002 @@ -461,7 +461,7 @@ * previous async read operation failed. */ int -nfs_readpage(struct file *file, struct page *page) +nfs_readpage(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; int error; @@ -480,11 +480,11 @@ goto out_error; if (!PageError(page) && NFS_SERVER(inode)->rsize >= PAGE_CACHE_SIZE) { - error = nfs_readpage_async(file->f_cred, inode, page); + error = nfs_readpage_async(vfscred, inode, page); goto out; } - error = nfs_readpage_sync(file->f_cred, inode, page); + error = nfs_readpage_sync(vfscred, inode, page); if (error < 0 && IS_SWAPFILE(inode)) printk("Aiee.. nfs swap-in of page failed!\n"); out: diff -u --recursive --new-file linux-2.5.33-smb/fs/ntfs/aops.c linux-2.5.33-vfs2/fs/ntfs/aops.c --- linux-2.5.33-smb/fs/ntfs/aops.c Wed Aug 21 00:21:47 2002 +++ linux-2.5.33-vfs2/fs/ntfs/aops.c Sun Sep 8 22:56:16 2002 @@ -320,7 +320,7 @@ /** * ntfs_readpage - fill a @page of a @file with data from the device - * @file: open file to which the page @page belongs or NULL + * @vfscred: user authentication information * @page: page cache page to fill with data * * For non-resident attributes, ntfs_readpage() fills the @page of the open @@ -338,7 +338,7 @@ * * WARNING: Do not make this function static! It is used by mft.c! */ -int ntfs_readpage(struct file *file, struct page *page) +int ntfs_readpage(struct vfs_cred *vfscred, struct page *page) { s64 attr_pos; ntfs_inode *ni, *base_ni; diff -u --recursive --new-file linux-2.5.33-smb/fs/ntfs/mft.c linux-2.5.33-vfs2/fs/ntfs/mft.c --- linux-2.5.33-smb/fs/ntfs/mft.c Sun Aug 18 18:43:16 2002 +++ linux-2.5.33-vfs2/fs/ntfs/mft.c Sun Sep 8 22:56:16 2002 @@ -100,7 +100,7 @@ /** * ntfs_readpage - external declaration, function is in fs/ntfs/aops.c */ -extern int ntfs_readpage(struct file *, struct page *); +extern int ntfs_readpage(struct vfs_cred *, struct page *); /** * ntfs_mft_aops - address space operations for access to $MFT diff -u --recursive --new-file linux-2.5.33-smb/fs/qnx4/inode.c linux-2.5.33-vfs2/fs/qnx4/inode.c --- linux-2.5.33-smb/fs/qnx4/inode.c Wed Jul 3 02:29:20 2002 +++ linux-2.5.33-vfs2/fs/qnx4/inode.c Sun Sep 8 22:56:16 2002 @@ -433,7 +433,7 @@ { return block_write_full_page(page,qnx4_get_block); } -static int qnx4_readpage(struct file *file, struct page *page) +static int qnx4_readpage(struct struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,qnx4_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/ramfs/inode.c linux-2.5.33-vfs2/fs/ramfs/inode.c --- linux-2.5.33-smb/fs/ramfs/inode.c Sun Sep 8 20:05:45 2002 +++ linux-2.5.33-vfs2/fs/ramfs/inode.c Sun Sep 8 22:56:16 2002 @@ -44,7 +44,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 file *file, struct page * page) +static int ramfs_readpage(struct vfs_cred *vfscred, struct page * page) { if (!PageUptodate(page)) { memset(kmap(page), 0, PAGE_CACHE_SIZE); diff -u --recursive --new-file linux-2.5.33-smb/fs/reiserfs/inode.c linux-2.5.33-vfs2/fs/reiserfs/inode.c --- linux-2.5.33-smb/fs/reiserfs/inode.c Thu May 30 16:37:30 2002 +++ linux-2.5.33-vfs2/fs/reiserfs/inode.c Sun Sep 8 22:56:16 2002 @@ -2022,7 +2022,7 @@ } -static int reiserfs_readpage (struct file *f, struct page * page) +static int reiserfs_readpage (struct vfs_cred *vfscred, struct page * page) { return block_read_full_page (page, reiserfs_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/romfs/inode.c linux-2.5.33-vfs2/fs/romfs/inode.c --- linux-2.5.33-smb/fs/romfs/inode.c Thu Aug 29 15:24:09 2002 +++ linux-2.5.33-vfs2/fs/romfs/inode.c Sun Sep 8 22:56:16 2002 @@ -411,7 +411,7 @@ */ static int -romfs_readpage(struct file *file, struct page * page) +romfs_readpage(struct vfs_cred *vfscred, struct page * page) { struct inode *inode = page->mapping->host; unsigned long offset, avail, readlen; diff -u --recursive --new-file linux-2.5.33-smb/fs/smbfs/file.c linux-2.5.33-vfs2/fs/smbfs/file.c --- linux-2.5.33-smb/fs/smbfs/file.c Sun Sep 8 22:55:34 2002 +++ linux-2.5.33-vfs2/fs/smbfs/file.c Sun Sep 8 22:56:16 2002 @@ -93,7 +93,7 @@ * We are called with the page locked and we unlock it when done. */ static int -smb_readpage(struct file *file, struct page *page) +smb_readpage(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; int error; diff -u --recursive --new-file linux-2.5.33-smb/fs/sysv/itree.c linux-2.5.33-vfs2/fs/sysv/itree.c --- linux-2.5.33-smb/fs/sysv/itree.c Thu May 23 15:18:58 2002 +++ linux-2.5.33-vfs2/fs/sysv/itree.c Sun Sep 8 22:56:16 2002 @@ -451,7 +451,7 @@ { return block_write_full_page(page,get_block); } -static int sysv_readpage(struct file *file, struct page *page) +static int sysv_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/udf/file.c linux-2.5.33-vfs2/fs/udf/file.c --- linux-2.5.33-smb/fs/udf/file.c Sat Jul 27 17:21:19 2002 +++ linux-2.5.33-vfs2/fs/udf/file.c Sun Sep 8 22:56:16 2002 @@ -44,7 +44,7 @@ #include "udf_i.h" #include "udf_sb.h" -static int udf_adinicb_readpage(struct file *file, struct page * page) +static int udf_adinicb_readpage(struct vfs_cred *vfscred, struct page * page) { struct inode *inode = page->mapping->host; diff -u --recursive --new-file linux-2.5.33-smb/fs/udf/inode.c linux-2.5.33-vfs2/fs/udf/inode.c --- linux-2.5.33-smb/fs/udf/inode.c Thu Aug 29 22:27:25 2002 +++ linux-2.5.33-vfs2/fs/udf/inode.c Sun Sep 8 22:56:16 2002 @@ -136,7 +136,7 @@ return block_write_full_page(page, udf_get_block); } -static int udf_readpage(struct file *file, struct page *page) +static int udf_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page, udf_get_block); } diff -u --recursive --new-file linux-2.5.33-smb/fs/udf/symlink.c linux-2.5.33-vfs2/fs/udf/symlink.c --- linux-2.5.33-smb/fs/udf/symlink.c Thu May 23 15:19:00 2002 +++ linux-2.5.33-vfs2/fs/udf/symlink.c Sun Sep 8 22:56:16 2002 @@ -78,7 +78,7 @@ p[0] = '\0'; } -static int udf_symlink_filler(struct file *file, struct page *page) +static int udf_symlink_filler(struct vfs_cred *vfscred, struct page *page) { struct inode *inode = page->mapping->host; struct buffer_head *bh = NULL; diff -u --recursive --new-file linux-2.5.33-smb/fs/ufs/inode.c linux-2.5.33-vfs2/fs/ufs/inode.c --- linux-2.5.33-smb/fs/ufs/inode.c Tue Aug 20 14:25:37 2002 +++ linux-2.5.33-vfs2/fs/ufs/inode.c Sun Sep 8 22:56:16 2002 @@ -449,7 +449,7 @@ { return block_write_full_page(page,ufs_getfrag_block); } -static int ufs_readpage(struct file *file, struct page *page) +static int ufs_readpage(struct vfs_cred *vfscred, struct page *page) { return block_read_full_page(page,ufs_getfrag_block); } diff -u --recursive --new-file linux-2.5.33-smb/include/linux/fs.h linux-2.5.33-vfs2/include/linux/fs.h --- linux-2.5.33-smb/include/linux/fs.h Sun Sep 8 20:17:35 2002 +++ linux-2.5.33-vfs2/include/linux/fs.h Sun Sep 8 22:56:16 2002 @@ -283,7 +283,7 @@ struct address_space_operations { int (*writepage)(struct page *); - int (*readpage)(struct file *, struct page *); + int (*readpage)(struct vfs_cred *, struct page *); int (*sync_page)(struct page *); /* Write back some dirty pages from this mapping. */ diff -u --recursive --new-file linux-2.5.33-smb/include/linux/nfs_fs.h linux-2.5.33-vfs2/include/linux/nfs_fs.h --- linux-2.5.33-smb/include/linux/nfs_fs.h Sun Sep 8 22:54:40 2002 +++ linux-2.5.33-vfs2/include/linux/nfs_fs.h Sun Sep 8 22:56:16 2002 @@ -370,7 +370,7 @@ /* * linux/fs/nfs/read.c */ -extern int nfs_readpage(struct file *, struct page *); +extern int nfs_readpage(struct vfs_cred *, struct page *); extern int nfs_pagein_inode(struct inode *, unsigned long, unsigned int); extern int nfs_pagein_list(struct list_head *, int); extern int nfs_scan_lru_read(struct nfs_server *, struct list_head *); diff -u --recursive --new-file linux-2.5.33-smb/include/linux/swap.h linux-2.5.33-vfs2/include/linux/swap.h --- linux-2.5.33-smb/include/linux/swap.h Thu Aug 29 22:27:24 2002 +++ linux-2.5.33-vfs2/include/linux/swap.h Sun Sep 8 22:56:16 2002 @@ -166,7 +166,7 @@ extern int try_to_free_pages(struct zone *, unsigned int, unsigned int); /* linux/mm/page_io.c */ -int swap_readpage(struct file *file, struct page *page); +int swap_readpage(struct vfs_cred *vfscred, struct page *page); int swap_writepage(struct page *page); int rw_swap_page_sync(int rw, swp_entry_t entry, struct page *page); diff -u --recursive --new-file linux-2.5.33-smb/mm/filemap.c linux-2.5.33-vfs2/mm/filemap.c --- linux-2.5.33-smb/mm/filemap.c Thu Aug 29 22:27:25 2002 +++ linux-2.5.33-vfs2/mm/filemap.c Sun Sep 8 22:56:16 2002 @@ -592,7 +592,7 @@ error = add_to_page_cache_lru(page, mapping, offset); if (!error) { - error = mapping->a_ops->readpage(file, page); + error = mapping->a_ops->readpage(file->f_cred, page); page_cache_release(page); return error; } @@ -990,7 +990,7 @@ readpage: /* ... and start the actual read. The read will unlock the page. */ - error = mapping->a_ops->readpage(filp, page); + error = mapping->a_ops->readpage(filp->f_cred, page); if (!error) { if (PageUptodate(page)) @@ -1321,7 +1321,7 @@ goto success; } - if (!mapping->a_ops->readpage(file, page)) { + if (!mapping->a_ops->readpage(file->f_cred, page)) { wait_on_page_locked(page); if (PageUptodate(page)) goto success; @@ -1348,7 +1348,7 @@ goto success; } ClearPageError(page); - if (!mapping->a_ops->readpage(file, page)) { + if (!mapping->a_ops->readpage(file->f_cred, page)) { wait_on_page_locked(page); if (PageUptodate(page)) goto success; diff -u --recursive --new-file linux-2.5.33-smb/mm/page_io.c linux-2.5.33-vfs2/mm/page_io.c --- linux-2.5.33-smb/mm/page_io.c Wed Jul 31 18:20:39 2002 +++ linux-2.5.33-vfs2/mm/page_io.c Sun Sep 8 22:56:16 2002 @@ -100,7 +100,7 @@ return ret; } -int swap_readpage(struct file *file, struct page *page) +int swap_readpage(struct vfs_cred *vfscred, struct page *page) { struct bio *bio; int ret = 0; diff -u --recursive --new-file linux-2.5.33-smb/mm/readahead.c linux-2.5.33-vfs2/mm/readahead.c --- linux-2.5.33-smb/mm/readahead.c Wed Aug 14 03:09:12 2002 +++ linux-2.5.33-vfs2/mm/readahead.c Sun Sep 8 22:56:16 2002 @@ -50,7 +50,7 @@ if (!add_to_page_cache(page, mapping, page->index)) { if (!pagevec_add(&lru_pvec, page)) __pagevec_lru_add(&lru_pvec); - mapping->a_ops->readpage(file, page); + mapping->a_ops->readpage(file->f_cred, page); } else { page_cache_release(page); }