<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"> arch/ia64/kernel/perfmon.c |    1 +
 drivers/char/raw.c         |    1 +
 fs/block_dev.c             |    1 +
 fs/coda/file.c             |    1 +
 fs/eventpoll.c             |    1 +
 fs/file_table.c            |    1 +
 fs/hugetlbfs/inode.c       |    1 +
 fs/intermezzo/vfs.c        |    2 ++
 fs/open.c                  |    3 ++-
 fs/pipe.c                  |    1 +
 include/linux/fs.h         |    1 +
 kernel/futex.c             |    1 +
 mm/shmem.c                 |    1 +
 net/socket.c               |    1 +
 14 files changed, 16 insertions(+), 1 deletion(-)

diff -puN arch/ia64/kernel/perfmon.c~RD8-f_mapping-B6 arch/ia64/kernel/perfmon.c
--- 25/arch/ia64/kernel/perfmon.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/arch/ia64/kernel/perfmon.c	2003-12-29 23:03:56.000000000 -0800
@@ -2157,6 +2157,7 @@ pfm_alloc_fd(struct file **cfile)
 
 	d_add(file-&gt;f_dentry, inode);
 	file-&gt;f_vfsmnt = mntget(pfmfs_mnt);
+	file-&gt;f_mapping = inode-&gt;i_mapping;
 
 	file-&gt;f_op    = &amp;pfm_file_ops;
 	file-&gt;f_mode  = FMODE_READ;
diff -puN drivers/char/raw.c~RD8-f_mapping-B6 drivers/char/raw.c
--- 25/drivers/char/raw.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/drivers/char/raw.c	2003-12-29 23:03:56.000000000 -0800
@@ -74,6 +74,7 @@ static int raw_open(struct inode *inode,
 			goto out;
 		}
 		filp-&gt;f_flags |= O_DIRECT;
+		filp-&gt;f_mapping = bdev-&gt;bd_inode-&gt;i_mapping;
 		if (++raw_devices[minor].inuse == 1)
 			filp-&gt;f_dentry-&gt;d_inode-&gt;i_mapping =
 				bdev-&gt;bd_inode-&gt;i_mapping;
diff -puN fs/block_dev.c~RD8-f_mapping-B6 fs/block_dev.c
--- 25/fs/block_dev.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/block_dev.c	2003-12-29 23:03:56.000000000 -0800
@@ -538,6 +538,7 @@ static int do_open(struct block_device *
 	int ret = -ENXIO;
 	int part;
 
+	file-&gt;f_mapping = bdev-&gt;bd_inode-&gt;i_mapping;
 	lock_kernel();
 	disk = get_gendisk(bdev-&gt;bd_dev, &amp;part);
 	if (!disk) {
diff -puN fs/coda/file.c~RD8-f_mapping-B6 fs/coda/file.c
--- 25/fs/coda/file.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/coda/file.c	2003-12-29 23:03:56.000000000 -0800
@@ -89,6 +89,7 @@ coda_file_mmap(struct file *coda_file, s
 
 	coda_inode = coda_file-&gt;f_dentry-&gt;d_inode;
 	host_inode = host_file-&gt;f_dentry-&gt;d_inode;
+	coda_file-&gt;f_mapping = host_file-&gt;f_mapping;
 	if (coda_inode-&gt;i_mapping == &amp;coda_inode-&gt;i_data)
 		coda_inode-&gt;i_mapping = host_inode-&gt;i_mapping;
 
diff -puN fs/eventpoll.c~RD8-f_mapping-B6 fs/eventpoll.c
--- 25/fs/eventpoll.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/eventpoll.c	2003-12-29 23:03:56.000000000 -0800
@@ -740,6 +740,7 @@ static int ep_getfd(int *efd, struct ino
 	d_add(dentry, inode);
 	file-&gt;f_vfsmnt = mntget(eventpoll_mnt);
 	file-&gt;f_dentry = dget(dentry);
+	file-&gt;f_mapping = inode-&gt;i_mapping;
 
 	file-&gt;f_pos = 0;
 	file-&gt;f_flags = O_RDONLY;
diff -puN fs/file_table.c~RD8-f_mapping-B6 fs/file_table.c
--- 25/fs/file_table.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/file_table.c	2003-12-29 23:03:56.000000000 -0800
@@ -120,6 +120,7 @@ int open_private_file(struct file *filp,
 	filp-&gt;f_mode   = (flags+1) &amp; O_ACCMODE;
 	atomic_set(&amp;filp-&gt;f_count, 1);
 	filp-&gt;f_dentry = dentry;
+	filp-&gt;f_mapping = dentry-&gt;d_inode-&gt;i_mapping;
 	filp-&gt;f_uid    = current-&gt;fsuid;
 	filp-&gt;f_gid    = current-&gt;fsgid;
 	filp-&gt;f_op     = dentry-&gt;d_inode-&gt;i_fop;
diff -puN fs/hugetlbfs/inode.c~RD8-f_mapping-B6 fs/hugetlbfs/inode.c
--- 25/fs/hugetlbfs/inode.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/hugetlbfs/inode.c	2003-12-29 23:03:56.000000000 -0800
@@ -788,6 +788,7 @@ struct file *hugetlb_zero_setup(size_t s
 	inode-&gt;i_nlink = 0;
 	file-&gt;f_vfsmnt = mntget(hugetlbfs_vfsmount);
 	file-&gt;f_dentry = dentry;
+	file-&gt;f_mapping = inode-&gt;i_mapping;
 	file-&gt;f_op = &amp;hugetlbfs_file_operations;
 	file-&gt;f_mode = FMODE_WRITE | FMODE_READ;
 	return file;
diff -puN fs/intermezzo/vfs.c~RD8-f_mapping-B6 fs/intermezzo/vfs.c
--- 25/fs/intermezzo/vfs.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/intermezzo/vfs.c	2003-12-29 23:03:56.000000000 -0800
@@ -2083,7 +2083,9 @@ static struct file *presto_filp_dopen(st
                 }
         }
 
+	/* XXX: where the fuck is -&gt;f_vfsmnt? */
         f-&gt;f_dentry = dentry;
+        f-&gt;f_mapping = dentry-&gt;d_inode-&gt;i_mapping;
         f-&gt;f_pos = 0;
         //f-&gt;f_reada = 0;
         f-&gt;f_op = NULL;
diff -puN fs/open.c~RD8-f_mapping-B6 fs/open.c
--- 25/fs/open.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/open.c	2003-12-29 23:03:56.000000000 -0800
@@ -776,7 +776,8 @@ struct file *dentry_open(struct dentry *
 			goto cleanup_file;
 	}
 
-	file_ra_state_init(&amp;f-&gt;f_ra, inode-&gt;i_mapping);
+	f-&gt;f_mapping = inode-&gt;i_mapping;
+	file_ra_state_init(&amp;f-&gt;f_ra, f-&gt;f_mapping);
 	f-&gt;f_dentry = dentry;
 	f-&gt;f_vfsmnt = mnt;
 	f-&gt;f_pos = 0;
diff -puN fs/pipe.c~RD8-f_mapping-B6 fs/pipe.c
--- 25/fs/pipe.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/fs/pipe.c	2003-12-29 23:03:56.000000000 -0800
@@ -650,6 +650,7 @@ int do_pipe(int *fd)
 	d_add(dentry, inode);
 	f1-&gt;f_vfsmnt = f2-&gt;f_vfsmnt = mntget(mntget(pipe_mnt));
 	f1-&gt;f_dentry = f2-&gt;f_dentry = dget(dentry);
+	f1-&gt;f_mapping = f2-&gt;f_mapping = inode-&gt;i_mapping;
 
 	/* read file */
 	f1-&gt;f_pos = f2-&gt;f_pos = 0;
diff -puN include/linux/fs.h~RD8-f_mapping-B6 include/linux/fs.h
--- 25/include/linux/fs.h~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/include/linux/fs.h	2003-12-29 23:03:56.000000000 -0800
@@ -526,6 +526,7 @@ struct file {
 	/* Used by fs/eventpoll.c to link all the hooks to this file */
 	struct list_head	f_ep_links;
 	spinlock_t		f_ep_lock;
+	struct address_space	*f_mapping;
 };
 extern spinlock_t files_lock;
 #define file_list_lock() spin_lock(&amp;files_lock);
diff -puN kernel/futex.c~RD8-f_mapping-B6 kernel/futex.c
--- 25/kernel/futex.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/kernel/futex.c	2003-12-29 23:03:56.000000000 -0800
@@ -577,6 +577,7 @@ static int futex_fd(unsigned long uaddr,
 	filp-&gt;f_op = &amp;futex_fops;
 	filp-&gt;f_vfsmnt = mntget(futex_mnt);
 	filp-&gt;f_dentry = dget(futex_mnt-&gt;mnt_root);
+	filp-&gt;f_mapping = filp-&gt;f_dentry-&gt;d_inode-&gt;i_mapping;
 
 	if (signal) {
 		int err;
diff -puN mm/shmem.c~RD8-f_mapping-B6 mm/shmem.c
--- 25/mm/shmem.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/mm/shmem.c	2003-12-29 23:03:56.000000000 -0800
@@ -1978,6 +1978,7 @@ struct file *shmem_file_setup(char *name
 	inode-&gt;i_nlink = 0;	/* It is unlinked */
 	file-&gt;f_vfsmnt = mntget(shm_mnt);
 	file-&gt;f_dentry = dentry;
+	file-&gt;f_mapping = inode-&gt;i_mapping;
 	file-&gt;f_op = &amp;shmem_file_operations;
 	file-&gt;f_mode = FMODE_WRITE | FMODE_READ;
 	return(file);
diff -puN net/socket.c~RD8-f_mapping-B6 net/socket.c
--- 25/net/socket.c~RD8-f_mapping-B6	2003-12-29 23:03:56.000000000 -0800
+++ 25-akpm/net/socket.c	2003-12-29 23:03:56.000000000 -0800
@@ -394,6 +394,7 @@ int sock_map_fd(struct socket *sock)
 		file-&gt;f_dentry-&gt;d_op = &amp;sockfs_dentry_operations;
 		d_add(file-&gt;f_dentry, SOCK_INODE(sock));
 		file-&gt;f_vfsmnt = mntget(sock_mnt);
+		file-&gt;f_mapping = file-&gt;f_dentry-&gt;d_inode-&gt;i_mapping;
 
 		sock-&gt;file = file;
 		file-&gt;f_op = SOCK_INODE(sock)-&gt;i_fop = &amp;socket_file_ops;

_
</pre></body></html>