Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 1592

kernel-2.6.18-238.el5.src.rpm

From: "Theodore Ts'o" <tytso@mit.edu>

This eliminates the i_blksize field from struct inode.  Filesystems that want
to provide a per-inode st_blksize can do so by providing their own getattr
routine instead of using the generic_fillattr() function.

Note that some filesystems were providing pretty much random (and incorrect)
values for i_blksize.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 arch/powerpc/platforms/cell/spufs/inode.c |    1 -
 arch/s390/hypfs/inode.c                   |    1 -
 drivers/block/loop.c                      |    7 +++++--
 drivers/infiniband/hw/ipath/ipath_fs.c    |    1 -
 drivers/isdn/capi/capifs.c                |    2 --
 drivers/misc/ibmasm/ibmasmfs.c            |    1 -
 drivers/oprofile/oprofilefs.c             |    1 -
 drivers/usb/core/inode.c                  |    1 -
 drivers/usb/gadget/inode.c                |    1 -
 fs/9p/vfs_inode.c                         |    4 +---
 fs/adfs/inode.c                           |    1 -
 fs/afs/inode.c                            |    1 -
 fs/autofs/inode.c                         |    1 -
 fs/autofs4/inode.c                        |    1 -
 fs/befs/linuxvfs.c                        |    1 -
 fs/bfs/dir.c                              |    2 +-
 fs/bfs/inode.c                            |    1 -
 fs/binfmt_misc.c                          |    1 -
 fs/cifs/cifsfs.c                          |    1 -
 fs/cifs/readdir.c                         |    5 ++---
 fs/coda/coda_linux.c                      |    2 --
 fs/configfs/inode.c                       |    1 -
 fs/cramfs/inode.c                         |    1 -
 fs/debugfs/inode.c                        |    1 -
 fs/devpts/inode.c                         |    2 --
 fs/eventpoll.c                            |    1 -
 fs/ext2/ialloc.c                          |    1 -
 fs/ext2/inode.c                           |    1 -
 fs/ext3/ialloc.c                          |    1 -
 fs/ext3/inode.c                           |    3 ---
 fs/fat/inode.c                            |    3 ---
 fs/freevxfs/vxfs_inode.c                  |    1 -
 fs/fuse/inode.c                           |    1 -
 fs/gfs2/inode.c                           |    1 -
 fs/hfs/inode.c                            |    2 --
 fs/hfsplus/inode.c                        |    2 --
 fs/hostfs/hostfs_kern.c                   |    1 -
 fs/hpfs/inode.c                           |    1 -
 fs/hppfs/hppfs_kern.c                     |    1 -
 fs/hugetlbfs/inode.c                      |    1 -
 fs/isofs/inode.c                          |    3 +--
 fs/jffs/inode-v23.c                       |    2 --
 fs/jffs2/fs.c                             |    2 --
 fs/jfs/jfs_extent.c                       |    2 +-
 fs/jfs/jfs_imap.c                         |    1 -
 fs/jfs/jfs_inode.c                        |    1 -
 fs/jfs/jfs_metapage.c                     |    2 +-
 fs/libfs.c                                |    2 --
 fs/minix/bitmap.c                         |    2 +-
 fs/minix/inode.c                          |    4 ++--
 fs/ncpfs/inode.c                          |    1 -
 fs/nfs/inode.c                            |    4 ----
 fs/ntfs/inode.c                           |    4 ----
 fs/ntfs/mft.c                             |    5 -----
 fs/ocfs2/dlm/dlmfs.c                      |    2 --
 fs/ocfs2/inode.c                          |    2 --
 fs/pipe.c                                 |    1 -
 fs/qnx4/inode.c                           |    1 -
 fs/ramfs/inode.c                          |    1 -
 fs/reiserfs/inode.c                       |    4 ----
 fs/smbfs/inode.c                          |    2 --
 fs/smbfs/proc.c                           |    1 -
 fs/stat.c                                 |    3 ++-
 fs/sysfs/inode.c                          |    1 -
 fs/sysv/ialloc.c                          |    2 +-
 fs/sysv/inode.c                           |    2 +-
 fs/udf/ialloc.c                           |    1 -
 fs/udf/inode.c                            |    2 --
 fs/ufs/ialloc.c                           |    1 -
 fs/ufs/inode.c                            |    1 -
 fs/xfs/linux-2.6/xfs_super.c              |    1 -
 fs/xfs/linux-2.6/xfs_vnode.c              |    1 -
 include/linux/fs.h                        |    1 -
 include/linux/nfsd/nfsfh.h                |   10 ++--------
 include/linux/smb.h                       |    1 -
 ipc/mqueue.c                              |    1 -
 kernel/cpuset.c                           |    1 -
 mm/shmem.c                                |    1 -
 net/sunrpc/rpc_pipe.c                     |    1 -
 security/inode.c                          |    1 -
 security/selinux/selinuxfs.c              |    1 -
 81 files changed, 21 insertions(+), 124 deletions(-)

diff -puN arch/powerpc/platforms/cell/spufs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default arch/powerpc/platforms/cell/spufs/inode.c
--- a/arch/powerpc/platforms/cell/spufs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/arch/powerpc/platforms/cell/spufs/inode.c
@@ -82,7 +82,6 @@ spufs_new_inode(struct super_block *sb, 
 	inode->i_mode = mode;
 	inode->i_uid = current->fsuid;
 	inode->i_gid = current->fsgid;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 out:
diff -puN arch/s390/hypfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default arch/s390/hypfs/inode.c
--- a/arch/s390/hypfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/arch/s390/hypfs/inode.c
@@ -91,7 +91,6 @@ static struct inode *hypfs_make_inode(st
 		ret->i_mode = mode;
 		ret->i_uid = hypfs_info->uid;
 		ret->i_gid = hypfs_info->gid;
-		ret->i_blksize = PAGE_CACHE_SIZE;
 		ret->i_blocks = 0;
 		ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
 		if (mode & S_IFDIR)
diff -puN drivers/block/loop.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/block/loop.c
--- a/drivers/block/loop.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/block/loop.c
@@ -662,7 +662,8 @@ static void do_loop_switch(struct loop_d
 
 	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
 	lo->lo_backing_file = file;
-	lo->lo_blocksize = mapping->host->i_blksize;
+	lo->lo_blocksize = S_ISBLK(mapping->host->i_mode) ?
+		mapping->host->i_bdev->bd_block_size : PAGE_SIZE;
 	lo->old_gfp_mask = mapping_gfp_mask(mapping);
 	mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
 	complete(&p->wait);
@@ -794,7 +795,9 @@ static int loop_set_fd(struct loop_devic
 		if (!(lo_flags & LO_FLAGS_USE_AOPS) && !file->f_op->write)
 			lo_flags |= LO_FLAGS_READ_ONLY;
 
-		lo_blocksize = inode->i_blksize;
+		lo_blocksize = S_ISBLK(inode->i_mode) ?
+			inode->i_bdev->bd_block_size : PAGE_SIZE;
+
 		error = 0;
 	} else {
 		goto out_putf;
diff -puN drivers/infiniband/hw/ipath/ipath_fs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/infiniband/hw/ipath/ipath_fs.c
--- a/drivers/infiniband/hw/ipath/ipath_fs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/infiniband/hw/ipath/ipath_fs.c
@@ -61,7 +61,6 @@ static int ipathfs_mknod(struct inode *d
 	inode->i_mode = mode;
 	inode->i_uid = 0;
 	inode->i_gid = 0;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 	inode->i_private = data;
diff -puN drivers/isdn/capi/capifs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/isdn/capi/capifs.c
--- a/drivers/isdn/capi/capifs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/isdn/capi/capifs.c
@@ -104,7 +104,6 @@ capifs_fill_super(struct super_block *s,
 	inode->i_ino = 1;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
 	inode->i_blocks = 0;
-	inode->i_blksize = 1024;
 	inode->i_uid = inode->i_gid = 0;
 	inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
 	inode->i_op = &simple_dir_inode_operations;
@@ -149,7 +148,6 @@ void capifs_new_ncci(unsigned int number
 	if (!inode)
 		return;
 	inode->i_ino = number+2;
-	inode->i_blksize = 1024;
 	inode->i_uid = config.setuid ? config.uid : current->fsuid;
 	inode->i_gid = config.setgid ? config.gid : current->fsgid;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
diff -puN drivers/misc/ibmasm/ibmasmfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/misc/ibmasm/ibmasmfs.c
--- a/drivers/misc/ibmasm/ibmasmfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/misc/ibmasm/ibmasmfs.c
@@ -147,7 +147,6 @@ static struct inode *ibmasmfs_make_inode
 	if (ret) {
 		ret->i_mode = mode;
 		ret->i_uid = ret->i_gid = 0;
-		ret->i_blksize = PAGE_CACHE_SIZE;
 		ret->i_blocks = 0;
 		ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
 	}
diff -puN drivers/oprofile/oprofilefs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/oprofile/oprofilefs.c
--- a/drivers/oprofile/oprofilefs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/oprofile/oprofilefs.c
@@ -31,7 +31,6 @@ static struct inode * oprofilefs_get_ino
 		inode->i_mode = mode;
 		inode->i_uid = 0;
 		inode->i_gid = 0;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 	}
diff -puN drivers/usb/core/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/usb/core/inode.c
--- a/drivers/usb/core/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/usb/core/inode.c
@@ -249,7 +249,6 @@ static struct inode *usbfs_get_inode (st
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 		switch (mode & S_IFMT) {
diff -puN drivers/usb/gadget/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default drivers/usb/gadget/inode.c
--- a/drivers/usb/gadget/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/drivers/usb/gadget/inode.c
@@ -1966,7 +1966,6 @@ gadgetfs_make_inode (struct super_block 
 		inode->i_mode = mode;
 		inode->i_uid = default_uid;
 		inode->i_gid = default_gid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime
 				= CURRENT_TIME;
diff -puN fs/9p/vfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/9p/vfs_inode.c
--- a/fs/9p/vfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/9p/vfs_inode.c
@@ -204,7 +204,6 @@ struct inode *v9fs_get_inode(struct supe
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = sb->s_blocksize;
 		inode->i_blocks = 0;
 		inode->i_rdev = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
@@ -950,9 +949,8 @@ v9fs_stat2inode(struct v9fs_stat *stat, 
 
 	inode->i_size = stat->length;
 
-	inode->i_blksize = sb->s_blocksize;
 	inode->i_blocks =
-	    (inode->i_size + inode->i_blksize - 1) >> sb->s_blocksize_bits;
+	    (inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
 }
 
 /**
diff -puN fs/adfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/adfs/inode.c
--- a/fs/adfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/adfs/inode.c
@@ -269,7 +269,6 @@ adfs_iget(struct super_block *sb, struct
 	inode->i_ino	 = obj->file_id;
 	inode->i_size	 = obj->size;
 	inode->i_nlink	 = 2;
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks	 = (inode->i_size + sb->s_blocksize - 1) >>
 			    sb->s_blocksize_bits;
 
diff -puN fs/afs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/afs/inode.c
--- a/fs/afs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/afs/inode.c
@@ -72,7 +72,6 @@ static int afs_inode_map_status(struct a
 	inode->i_ctime.tv_sec	= vnode->status.mtime_server;
 	inode->i_ctime.tv_nsec	= 0;
 	inode->i_atime		= inode->i_mtime = inode->i_ctime;
-	inode->i_blksize	= PAGE_CACHE_SIZE;
 	inode->i_blocks		= 0;
 	inode->i_version	= vnode->fid.unique;
 	inode->i_mapping->a_ops	= &afs_fs_aops;
diff -puN fs/autofs4/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/autofs4/inode.c
--- a/fs/autofs4/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/autofs4/inode.c
@@ -446,7 +446,6 @@ struct inode *autofs4_get_inode(struct s
 		inode->i_uid = 0;
 		inode->i_gid = 0;
 	}
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 
diff -puN fs/autofs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/autofs/inode.c
--- a/fs/autofs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/autofs/inode.c
@@ -216,7 +216,6 @@ static void autofs_read_inode(struct ino
 	inode->i_nlink = 2;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
 	inode->i_blocks = 0;
-	inode->i_blksize = 1024;
 
 	if ( ino == AUTOFS_ROOT_INO ) {
 		inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
diff -puN fs/befs/linuxvfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/befs/linuxvfs.c
--- a/fs/befs/linuxvfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/befs/linuxvfs.c
@@ -365,7 +365,6 @@ befs_read_inode(struct inode *inode)
 	inode->i_mtime.tv_nsec = 0;   /* lower 16 bits are not a time */	
 	inode->i_ctime = inode->i_mtime;
 	inode->i_atime = inode->i_mtime;
-	inode->i_blksize = befs_sb->block_size;
 
 	befs_ino->i_inode_num = fsrun_to_cpu(sb, raw_inode->inode_num);
 	befs_ino->i_parent = fsrun_to_cpu(sb, raw_inode->parent);
diff -puN fs/bfs/dir.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/bfs/dir.c
--- a/fs/bfs/dir.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/bfs/dir.c
@@ -102,7 +102,7 @@ static int bfs_create(struct inode * dir
 	inode->i_uid = current->fsuid;
 	inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 	inode->i_op = &bfs_file_inops;
 	inode->i_fop = &bfs_file_operations;
 	inode->i_mapping->a_ops = &bfs_aops;
diff -puN fs/bfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/bfs/inode.c
--- a/fs/bfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/bfs/inode.c
@@ -76,7 +76,6 @@ static void bfs_read_inode(struct inode 
 	inode->i_size = BFS_FILESIZE(di);
 	inode->i_blocks = BFS_FILEBLOCKS(di);
         if (inode->i_size || inode->i_blocks) dprintf("Registered inode with %lld size, %ld blocks\n", inode->i_size, inode->i_blocks);
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_atime.tv_sec =  le32_to_cpu(di->i_atime);
 	inode->i_mtime.tv_sec =  le32_to_cpu(di->i_mtime);
 	inode->i_ctime.tv_sec =  le32_to_cpu(di->i_ctime);
diff -puN fs/binfmt_misc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/binfmt_misc.c
--- a/fs/binfmt_misc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/binfmt_misc.c
@@ -507,7 +507,6 @@ static struct inode *bm_get_inode(struct
 		inode->i_mode = mode;
 		inode->i_uid = 0;
 		inode->i_gid = 0;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime =
 			current_fs_time(inode->i_sb);
diff -puN fs/cifs/cifsfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/cifs/cifsfs.c
--- a/fs/cifs/cifsfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/cifs/cifsfs.c
@@ -255,7 +255,6 @@ cifs_alloc_inode(struct super_block *sb)
 	file data or metadata */
 	cifs_inode->clientCanCacheRead = FALSE;
 	cifs_inode->clientCanCacheAll = FALSE;
-	cifs_inode->vfs_inode.i_blksize = CIFS_MAX_MSGSIZE;
 	cifs_inode->vfs_inode.i_blkbits = 14;  /* 2**14 = CIFS_MAX_MSGSIZE */
 	cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME;
 	INIT_LIST_HEAD(&cifs_inode->openFileList);
diff -puN fs/cifs/readdir.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/cifs/readdir.c
--- a/fs/cifs/readdir.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/cifs/readdir.c
@@ -219,10 +219,9 @@ static void fill_in_inode(struct inode *
 
 	if (allocation_size < end_of_file)
 		cFYI(1, ("May be sparse file, allocation less than file size"));
-	cFYI(1, ("File Size %ld and blocks %llu and blocksize %ld",
+	cFYI(1, ("File Size %ld and blocks %llu",
 		(unsigned long)tmp_inode->i_size,
-		(unsigned long long)tmp_inode->i_blocks,
-		tmp_inode->i_blksize));
+		(unsigned long long)tmp_inode->i_blocks));
 	if (S_ISREG(tmp_inode->i_mode)) {
 		cFYI(1, ("File inode"));
 		tmp_inode->i_op = &cifs_file_inode_ops;
diff -puN fs/coda/coda_linux.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/coda/coda_linux.c
--- a/fs/coda/coda_linux.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/coda/coda_linux.c
@@ -110,8 +110,6 @@ void coda_vattr_to_iattr(struct inode *i
 	        inode->i_nlink = attr->va_nlink;
 	if (attr->va_size != -1)
 	        inode->i_size = attr->va_size;
-	if (attr->va_blocksize != -1)
-		inode->i_blksize = attr->va_blocksize;
 	if (attr->va_size != -1)
 		inode->i_blocks = (attr->va_size + 511) >> 9;
 	if (attr->va_atime.tv_sec != -1) 
diff -puN fs/configfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/configfs/inode.c
--- a/fs/configfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/configfs/inode.c
@@ -136,7 +136,6 @@ struct inode * configfs_new_inode(mode_t
 {
 	struct inode * inode = new_inode(configfs_sb);
 	if (inode) {
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->a_ops = &configfs_aops;
 		inode->i_mapping->backing_dev_info = &configfs_backing_dev_info;
diff -puN fs/cramfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/cramfs/inode.c
--- a/fs/cramfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/cramfs/inode.c
@@ -73,7 +73,6 @@ static int cramfs_iget5_set(struct inode
 	inode->i_uid = cramfs_inode->uid;
 	inode->i_size = cramfs_inode->size;
 	inode->i_blocks = (cramfs_inode->size - 1) / 512 + 1;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_gid = cramfs_inode->gid;
 	/* Struct copy intentional */
 	inode->i_mtime = inode->i_atime = inode->i_ctime = zerotime;
diff -puN fs/debugfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/debugfs/inode.c
--- a/fs/debugfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/debugfs/inode.c
@@ -40,7 +40,6 @@ static struct inode *debugfs_get_inode(s
 		inode->i_mode = mode;
 		inode->i_uid = 0;
 		inode->i_gid = 0;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 		switch (mode & S_IFMT) {
diff -puN fs/devpts/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/devpts/inode.c
--- a/fs/devpts/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/devpts/inode.c
@@ -113,7 +113,6 @@ devpts_fill_super(struct super_block *s,
 	inode->i_ino = 1;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
 	inode->i_blocks = 0;
-	inode->i_blksize = 1024;
 	inode->i_uid = inode->i_gid = 0;
 	inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
 	inode->i_op = &simple_dir_inode_operations;
@@ -172,7 +171,6 @@ int devpts_pty_new(struct tty_struct *tt
 		return -ENOMEM;
 
 	inode->i_ino = number+2;
-	inode->i_blksize = 1024;
 	inode->i_uid = config.setuid ? config.uid : current->fsuid;
 	inode->i_gid = config.setgid ? config.gid : current->fsgid;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
diff -puN fs/eventpoll.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/eventpoll.c
--- a/fs/eventpoll.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/eventpoll.c
@@ -1590,7 +1590,6 @@ static struct inode *ep_eventpoll_inode(
 	inode->i_uid = current->fsuid;
 	inode->i_gid = current->fsgid;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
-	inode->i_blksize = PAGE_SIZE;
 	return inode;
 
 eexit_1:
diff -puN fs/ext2/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ext2/ialloc.c
--- a/fs/ext2/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ext2/ialloc.c
@@ -574,7 +574,6 @@ got:
 	inode->i_mode = mode;
 
 	inode->i_ino = ino;
-	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size (for stat), not the fs block size */
 	inode->i_blocks = 0;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
 	memset(ei->i_data, 0, sizeof(ei->i_data));
diff -puN fs/ext2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ext2/inode.c
--- a/fs/ext2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ext2/inode.c
@@ -1094,7 +1094,6 @@ void ext2_read_inode (struct inode * ino
 		brelse (bh);
 		goto bad_inode;
 	}
-	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size (for stat), not the fs block size */
 	inode->i_blocks = le32_to_cpu(raw_inode->i_blocks);
 	ei->i_flags = le32_to_cpu(raw_inode->i_flags);
 	ei->i_faddr = le32_to_cpu(raw_inode->i_faddr);
diff -puN fs/ext3/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ext3/ialloc.c
--- a/fs/ext3/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ext3/ialloc.c
@@ -559,7 +559,6 @@ got:
 
 	inode->i_ino = ino;
 	/* This is the optimal IO size (for stat), not the fs block size */
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
 
diff -puN fs/ext3/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ext3/inode.c
--- a/fs/ext3/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ext3/inode.c
@@ -2628,9 +2628,6 @@ void ext3_read_inode(struct inode * inod
 		 * recovery code: that's fine, we're about to complete
 		 * the process of deleting those. */
 	}
-	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size
-					 * (for stat), not the fs block
-					 * size */  
 	inode->i_blocks = le32_to_cpu(raw_inode->i_blocks);
 	ei->i_flags = le32_to_cpu(raw_inode->i_flags);
 #ifdef EXT3_FRAGMENTS
diff -puN fs/fat/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/fat/inode.c
--- a/fs/fat/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/fat/inode.c
@@ -370,8 +370,6 @@ static int fat_fill_inode(struct inode *
 			inode->i_flags |= S_IMMUTABLE;
 	}
 	MSDOS_I(inode)->i_attrs = de->attr & ATTR_UNUSED;
-	/* this is as close to the truth as we can get ... */
-	inode->i_blksize = sbi->cluster_size;
 	inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))
 			   & ~((loff_t)sbi->cluster_size - 1)) >> 9;
 	inode->i_mtime.tv_sec =
@@ -1132,7 +1130,6 @@ static int fat_read_root(struct inode *i
 		MSDOS_I(inode)->i_start = 0;
 		inode->i_size = sbi->dir_entries * sizeof(struct msdos_dir_entry);
 	}
-	inode->i_blksize = sbi->cluster_size;
 	inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))
 			   & ~((loff_t)sbi->cluster_size - 1)) >> 9;
 	MSDOS_I(inode)->i_logstart = 0;
diff -puN fs/freevxfs/vxfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/freevxfs/vxfs_inode.c
--- a/fs/freevxfs/vxfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/freevxfs/vxfs_inode.c
@@ -239,7 +239,6 @@ vxfs_iinit(struct inode *ip, struct vxfs
 	ip->i_ctime.tv_nsec = 0;
 	ip->i_mtime.tv_nsec = 0;
 
-	ip->i_blksize = PAGE_SIZE;
 	ip->i_blocks = vip->vii_blocks;
 	ip->i_generation = vip->vii_gen;
 
diff -puN fs/fuse/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/fuse/inode.c
--- a/fs/fuse/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/fuse/inode.c
@@ -120,7 +120,6 @@ void fuse_change_attributes(struct inode
 	spin_lock(&fc->lock);
 	i_size_write(inode, attr->size);
 	spin_unlock(&fc->lock);
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks  = attr->blocks;
 	inode->i_atime.tv_sec   = attr->atime;
 	inode->i_atime.tv_nsec  = attr->atimensec;
diff -puN fs/gfs2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/gfs2/inode.c
--- linux-2.6.17.noarch/fs/gfs2/inode.c~	2006-09-07 12:24:52.000000000 -0400
+++ linux-2.6.17.noarch/fs/gfs2/inode.c	2006-09-07 12:25:03.000000000 -0400
@@ -72,7 +72,6 @@ void gfs2_inode_attr_in(struct gfs2_inod
 	inode->i_atime.tv_nsec = 0;
 	inode->i_mtime.tv_nsec = 0;
 	inode->i_ctime.tv_nsec = 0;
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = di->di_blocks <<
 		(GFS2_SB(inode)->sd_sb.sb_bsize_shift - GFS2_BASIC_BLOCK_SHIFT);
 
diff -puN fs/hfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hfs/inode.c
--- a/fs/hfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hfs/inode.c
@@ -154,7 +154,6 @@ struct inode *hfs_new_inode(struct inode
 	inode->i_gid = current->fsgid;
 	inode->i_nlink = 1;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
-	inode->i_blksize = HFS_SB(sb)->alloc_blksz;
 	HFS_I(inode)->flags = 0;
 	HFS_I(inode)->rsrc_inode = NULL;
 	HFS_I(inode)->fs_blocks = 0;
@@ -284,7 +283,6 @@ static int hfs_read_inode(struct inode *
 	inode->i_uid = hsb->s_uid;
 	inode->i_gid = hsb->s_gid;
 	inode->i_nlink = 1;
-	inode->i_blksize = HFS_SB(inode->i_sb)->alloc_blksz;
 
 	if (idata->key)
 		HFS_I(inode)->cat_key = *idata->key;
diff -puN fs/hfsplus/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hfsplus/inode.c
--- a/fs/hfsplus/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hfsplus/inode.c
@@ -304,7 +304,6 @@ struct inode *hfsplus_new_inode(struct s
 	inode->i_gid = current->fsgid;
 	inode->i_nlink = 1;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
-	inode->i_blksize = HFSPLUS_SB(sb).alloc_blksz;
 	INIT_LIST_HEAD(&HFSPLUS_I(inode).open_dir_list);
 	init_MUTEX(&HFSPLUS_I(inode).extents_lock);
 	atomic_set(&HFSPLUS_I(inode).opencnt, 0);
@@ -407,7 +406,6 @@ int hfsplus_cat_read_inode(struct inode 
 	type = hfs_bnode_read_u16(fd->bnode, fd->entryoffset);
 
 	HFSPLUS_I(inode).dev = 0;
-	inode->i_blksize = HFSPLUS_SB(inode->i_sb).alloc_blksz;
 	if (type == HFSPLUS_FOLDER) {
 		struct hfsplus_cat_folder *folder = &entry.folder;
 
diff -puN fs/hostfs/hostfs_kern.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hostfs/hostfs_kern.c
--- a/fs/hostfs/hostfs_kern.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hostfs/hostfs_kern.c
@@ -156,7 +156,6 @@ static int read_name(struct inode *ino, 
 	ino->i_mode = i_mode;
 	ino->i_nlink = i_nlink;
 	ino->i_size = i_size;
-	ino->i_blksize = i_blksize;
 	ino->i_blocks = i_blocks;
 	return(0);
 }
diff -puN fs/hpfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hpfs/inode.c
--- a/fs/hpfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hpfs/inode.c
@@ -17,7 +17,6 @@ void hpfs_init_inode(struct inode *i)
 	i->i_gid = hpfs_sb(sb)->sb_gid;
 	i->i_mode = hpfs_sb(sb)->sb_mode;
 	hpfs_inode->i_conv = hpfs_sb(sb)->sb_conv;
-	i->i_blksize = 512;
 	i->i_size = -1;
 	i->i_blocks = -1;
 	
diff -puN fs/hppfs/hppfs_kern.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hppfs/hppfs_kern.c
--- a/fs/hppfs/hppfs_kern.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hppfs/hppfs_kern.c
@@ -152,7 +152,6 @@ static void hppfs_read_inode(struct inod
 	ino->i_mode = proc_ino->i_mode;
 	ino->i_nlink = proc_ino->i_nlink;
 	ino->i_size = proc_ino->i_size;
-	ino->i_blksize = proc_ino->i_blksize;
 	ino->i_blocks = proc_ino->i_blocks;
 }
 
diff -puN fs/hugetlbfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/hugetlbfs/inode.c
--- a/fs/hugetlbfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/hugetlbfs/inode.c
@@ -359,7 +359,6 @@ static struct inode *hugetlbfs_get_inode
 		inode->i_mode = mode;
 		inode->i_uid = uid;
 		inode->i_gid = gid;
-		inode->i_blksize = HPAGE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->a_ops = &hugetlbfs_aops;
 		inode->i_mapping->backing_dev_info =&hugetlbfs_backing_dev_info;
diff -puN fs/isofs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/isofs/inode.c
--- a/fs/isofs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/isofs/inode.c
@@ -1238,7 +1238,7 @@ static void isofs_read_inode(struct inod
 	}
 	inode->i_uid = sbi->s_uid;
 	inode->i_gid = sbi->s_gid;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 
 	ei->i_format_parm[0] = 0;
 	ei->i_format_parm[1] = 0;
@@ -1294,7 +1294,6 @@ static void isofs_read_inode(struct inod
 			      isonum_711 (de->ext_attr_length));
 
 	/* Set the number of blocks for stat() - should be done before RR */
-	inode->i_blksize = PAGE_CACHE_SIZE; /* For stat() only */
 	inode->i_blocks  = (inode->i_size + 511) >> 9;
 
 	/*
diff -puN fs/jffs2/fs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jffs2/fs.c
--- a/fs/jffs2/fs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jffs2/fs.c
@@ -263,7 +263,6 @@ void jffs2_read_inode (struct inode *ino
 
 	inode->i_nlink = f->inocache->nlink;
 
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = (inode->i_size + 511) >> 9;
 
 	switch (inode->i_mode & S_IFMT) {
@@ -449,7 +448,6 @@ struct inode *jffs2_new_inode (struct in
 	inode->i_atime = inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
 	ri->atime = ri->mtime = ri->ctime = cpu_to_je32(I_SEC(inode->i_mtime));
 
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_size = 0;
 
diff -puN fs/jffs/inode-v23.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jffs/inode-v23.c
--- a/fs/jffs/inode-v23.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jffs/inode-v23.c
@@ -364,7 +364,6 @@ jffs_new_inode(const struct inode * dir,
 	inode->i_ctime.tv_nsec = 0;
 	inode->i_mtime.tv_nsec = 0;
 	inode->i_atime.tv_nsec = 0;
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = (inode->i_size + 511) >> 9;
 
 	f = jffs_find_file(c, raw_inode->ino);
@@ -1706,7 +1705,6 @@ jffs_read_inode(struct inode *inode)
 	inode->i_mtime.tv_nsec = 
 	inode->i_ctime.tv_nsec = 0;
 
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = (inode->i_size + 511) >> 9;
 	if (S_ISREG(inode->i_mode)) {
 		inode->i_op = &jffs_file_inode_operations;
diff -puN fs/jfs/jfs_extent.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jfs/jfs_extent.c
--- a/fs/jfs/jfs_extent.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jfs/jfs_extent.c
@@ -468,7 +468,7 @@ int extRecord(struct inode *ip, xad_t * 
 int extFill(struct inode *ip, xad_t * xp)
 {
 	int rc, nbperpage = JFS_SBI(ip->i_sb)->nbperpage;
-	s64 blkno = offsetXAD(xp) >> ip->i_blksize;
+	s64 blkno = offsetXAD(xp) >> ip->i_blkbits;
 
 //      assert(ISSPARSE(ip));
 
diff -puN fs/jfs/jfs_imap.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jfs/jfs_imap.c
--- a/fs/jfs/jfs_imap.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jfs/jfs_imap.c
@@ -3115,7 +3115,6 @@ static int copy_from_dinode(struct dinod
 	ip->i_mtime.tv_nsec = le32_to_cpu(dip->di_mtime.tv_nsec);
 	ip->i_ctime.tv_sec = le32_to_cpu(dip->di_ctime.tv_sec);
 	ip->i_ctime.tv_nsec = le32_to_cpu(dip->di_ctime.tv_nsec);
-	ip->i_blksize = ip->i_sb->s_blocksize;
 	ip->i_blocks = LBLK2PBLK(ip->i_sb, le64_to_cpu(dip->di_nblocks));
 	ip->i_generation = le32_to_cpu(dip->di_gen);
 
diff -puN fs/jfs/jfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jfs/jfs_inode.c
--- a/fs/jfs/jfs_inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jfs/jfs_inode.c
@@ -115,7 +115,6 @@ struct inode *ialloc(struct inode *paren
 	}
 	jfs_inode->mode2 |= mode;
 
-	inode->i_blksize = sb->s_blocksize;
 	inode->i_blocks = 0;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
 	jfs_inode->otime = inode->i_ctime.tv_sec;
diff -puN fs/jfs/jfs_metapage.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/jfs/jfs_metapage.c
--- a/fs/jfs/jfs_metapage.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/jfs/jfs_metapage.c
@@ -257,7 +257,7 @@ static sector_t metapage_get_blocks(stru
 	int rc = 0;
 	int xflag;
 	s64 xaddr;
-	sector_t file_blocks = (inode->i_size + inode->i_blksize - 1) >>
+	sector_t file_blocks = (inode->i_size + inode->i_sb->s_blocksize - 1) >>
 			       inode->i_blkbits;
 
 	if (lblock >= file_blocks)
diff -puN fs/libfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/libfs.c
--- a/fs/libfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/libfs.c
@@ -383,7 +383,6 @@ int simple_fill_super(struct super_block
 		return -ENOMEM;
 	inode->i_mode = S_IFDIR | 0755;
 	inode->i_uid = inode->i_gid = 0;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 	inode->i_op = &simple_dir_inode_operations;
@@ -405,7 +404,6 @@ int simple_fill_super(struct super_block
 			goto out;
 		inode->i_mode = S_IFREG | files->mode;
 		inode->i_uid = inode->i_gid = 0;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 		inode->i_fop = files->ops;
diff -puN fs/minix/bitmap.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/minix/bitmap.c
--- a/fs/minix/bitmap.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/minix/bitmap.c
@@ -254,7 +254,7 @@ struct inode * minix_new_inode(const str
 	inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
 	inode->i_ino = j;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 	memset(&minix_i(inode)->u, 0, sizeof(minix_i(inode)->u));
 	insert_inode_hash(inode);
 	mark_inode_dirty(inode);
diff -puN fs/minix/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/minix/inode.c
--- a/fs/minix/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/minix/inode.c
@@ -392,7 +392,7 @@ static void V1_minix_read_inode(struct i
 	inode->i_mtime.tv_nsec = 0;
 	inode->i_atime.tv_nsec = 0;
 	inode->i_ctime.tv_nsec = 0;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 	for (i = 0; i < 9; i++)
 		minix_inode->u.i1_data[i] = raw_inode->i_zone[i];
 	minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
@@ -425,7 +425,7 @@ static void V2_minix_read_inode(struct i
 	inode->i_mtime.tv_nsec = 0;
 	inode->i_atime.tv_nsec = 0;
 	inode->i_ctime.tv_nsec = 0;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 	for (i = 0; i < 10; i++)
 		minix_inode->u.i2_data[i] = raw_inode->i_zone[i];
 	minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
diff -puN fs/ncpfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ncpfs/inode.c
--- a/fs/ncpfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ncpfs/inode.c
@@ -224,7 +224,6 @@ static void ncp_set_attr(struct inode *i
 	inode->i_nlink = 1;
 	inode->i_uid = server->m.uid;
 	inode->i_gid = server->m.gid;
-	inode->i_blksize = NCP_BLOCK_SIZE;
 
 	ncp_update_dates(inode, &nwinfo->i);
 	ncp_update_inode(inode, nwinfo);
diff -puN fs/nfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/nfs/inode.c
--- a/fs/nfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/nfs/inode.c
@@ -282,10 +282,8 @@ nfs_fhget(struct super_block *sb, struct
 			 * report the blocks in 512byte units
 			 */
 			inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
-			inode->i_blksize = inode->i_sb->s_blocksize;
 		} else {
 			inode->i_blocks = fattr->du.nfs2.blocks;
-			inode->i_blksize = fattr->du.nfs2.blocksize;
 		}
 		nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
 		nfsi->attrtimeo_timestamp = jiffies;
@@ -970,10 +968,8 @@ static int nfs_update_inode(struct inode
 		 * report the blocks in 512byte units
 		 */
 		inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
-		inode->i_blksize = inode->i_sb->s_blocksize;
  	} else {
  		inode->i_blocks = fattr->du.nfs2.blocks;
- 		inode->i_blksize = fattr->du.nfs2.blocksize;
  	}
 
 	if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 &&
diff -puN fs/ntfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ntfs/inode.c
--- a/fs/ntfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ntfs/inode.c
@@ -556,8 +556,6 @@ static int ntfs_read_locked_inode(struct
 
 	/* Setup the generic vfs inode parts now. */
 
-	/* This is the optimal IO size (for stat), not the fs block size. */
-	vi->i_blksize = PAGE_CACHE_SIZE;
 	/*
 	 * This is for checking whether an inode has changed w.r.t. a file so
 	 * that the file can be updated if necessary (compare with f_version).
@@ -1234,7 +1232,6 @@ static int ntfs_read_locked_attr_inode(s
 	base_ni = NTFS_I(base_vi);
 
 	/* Just mirror the values from the base inode. */
-	vi->i_blksize	= base_vi->i_blksize;
 	vi->i_version	= base_vi->i_version;
 	vi->i_uid	= base_vi->i_uid;
 	vi->i_gid	= base_vi->i_gid;
@@ -1504,7 +1501,6 @@ static int ntfs_read_locked_index_inode(
 	ni	= NTFS_I(vi);
 	base_ni = NTFS_I(base_vi);
 	/* Just mirror the values from the base inode. */
-	vi->i_blksize	= base_vi->i_blksize;
 	vi->i_version	= base_vi->i_version;
 	vi->i_uid	= base_vi->i_uid;
 	vi->i_gid	= base_vi->i_gid;
diff -puN fs/ntfs/mft.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ntfs/mft.c
--- a/fs/ntfs/mft.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ntfs/mft.c
@@ -2638,11 +2638,6 @@ mft_rec_already_initialized:
 		}
 		vi->i_ino = bit;
 		/*
-		 * This is the optimal IO size (for stat), not the fs block
-		 * size.
-		 */
-		vi->i_blksize = PAGE_CACHE_SIZE;
-		/*
 		 * This is for checking whether an inode has changed w.r.t. a
 		 * file so that the file can be updated if necessary (compare
 		 * with f_version).
diff -puN fs/ocfs2/dlm/dlmfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ocfs2/dlm/dlmfs.c
--- a/fs/ocfs2/dlm/dlmfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ocfs2/dlm/dlmfs.c
@@ -335,7 +335,6 @@ static struct inode *dlmfs_get_root_inod
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
@@ -362,7 +361,6 @@ static struct inode *dlmfs_get_inode(str
 	inode->i_mode = mode;
 	inode->i_uid = current->fsuid;
 	inode->i_gid = current->fsgid;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_mapping->backing_dev_info = &dlmfs_backing_dev_info;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
diff -puN fs/ocfs2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ocfs2/inode.c
--- a/fs/ocfs2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ocfs2/inode.c
@@ -251,7 +251,6 @@ int ocfs2_populate_inode(struct inode *i
 	inode->i_mode = le16_to_cpu(fe->i_mode);
 	inode->i_uid = le32_to_cpu(fe->i_uid);
 	inode->i_gid = le32_to_cpu(fe->i_gid);
-	inode->i_blksize = (u32)osb->s_clustersize;
 
 	/* Fast symlinks will have i_size but no allocated clusters. */
 	if (S_ISLNK(inode->i_mode) && !fe->i_clusters)
@@ -1174,7 +1173,6 @@ void ocfs2_refresh_inode(struct inode *i
 	inode->i_uid = le32_to_cpu(fe->i_uid);
 	inode->i_gid = le32_to_cpu(fe->i_gid);
 	inode->i_mode = le16_to_cpu(fe->i_mode);
-	inode->i_blksize = (u32) osb->s_clustersize;
 	if (S_ISLNK(inode->i_mode) && le32_to_cpu(fe->i_clusters) == 0)
 		inode->i_blocks = 0;
 	else
diff -puN fs/pipe.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/pipe.c
--- a/fs/pipe.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/pipe.c
@@ -879,7 +879,6 @@ static struct inode * get_pipe_inode(voi
 	inode->i_uid = current->fsuid;
 	inode->i_gid = current->fsgid;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
-	inode->i_blksize = PAGE_SIZE;
 
 	return inode;
 
diff -puN fs/qnx4/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/qnx4/inode.c
--- a/fs/qnx4/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/qnx4/inode.c
@@ -497,7 +497,6 @@ static void qnx4_read_inode(struct inode
 	inode->i_ctime.tv_sec   = le32_to_cpu(raw_inode->di_ctime);
 	inode->i_ctime.tv_nsec = 0;
 	inode->i_blocks  = le32_to_cpu(raw_inode->di_first_xtnt.xtnt_size);
-	inode->i_blksize = QNX4_DIR_ENTRY_SIZE;
 
 	memcpy(qnx4_inode, raw_inode, QNX4_DIR_ENTRY_SIZE);
 	if (S_ISREG(inode->i_mode)) {
diff -puN fs/ramfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ramfs/inode.c
--- a/fs/ramfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ramfs/inode.c
@@ -58,7 +58,6 @@ struct inode *ramfs_get_inode(struct sup
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->a_ops = &ramfs_aops;
 		inode->i_mapping->backing_dev_info = &ramfs_backing_dev_info;
diff -puN fs/reiserfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/reiserfs/inode.c
--- a/fs/reiserfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/reiserfs/inode.c
@@ -17,8 +17,6 @@
 #include <linux/writeback.h>
 #include <linux/quotaops.h>
 
-extern int reiserfs_default_io_size;	/* default io size devuned in super.c */
-
 static int reiserfs_commit_write(struct file *f, struct page *page,
 				 unsigned from, unsigned to);
 static int reiserfs_prepare_write(struct file *f, struct page *page,
@@ -1130,7 +1128,6 @@ static void init_inode(struct inode *ino
 	ih = PATH_PITEM_HEAD(path);
 
 	copy_key(INODE_PKEY(inode), &(ih->ih_key));
-	inode->i_blksize = reiserfs_default_io_size;
 
 	INIT_LIST_HEAD(&(REISERFS_I(inode)->i_prealloc_list));
 	REISERFS_I(inode)->i_flags = 0;
@@ -1885,7 +1882,6 @@ int reiserfs_new_inode(struct reiserfs_t
 	}
 	// these do not go to on-disk stat data
 	inode->i_ino = le32_to_cpu(ih.ih_key.k_objectid);
-	inode->i_blksize = reiserfs_default_io_size;
 
 	// store in in-core inode the key of stat data and version all
 	// object items will have (directory items will have old offset
diff -puN fs/smbfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/smbfs/inode.c
--- a/fs/smbfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/smbfs/inode.c
@@ -167,7 +167,6 @@ smb_get_inode_attr(struct inode *inode, 
 	fattr->f_mtime	= inode->i_mtime;
 	fattr->f_ctime	= inode->i_ctime;
 	fattr->f_atime	= inode->i_atime;
-	fattr->f_blksize= inode->i_blksize;
 	fattr->f_blocks	= inode->i_blocks;
 
 	fattr->attr	= SMB_I(inode)->attr;
@@ -201,7 +200,6 @@ smb_set_inode_attr(struct inode *inode, 
 	inode->i_uid	= fattr->f_uid;
 	inode->i_gid	= fattr->f_gid;
 	inode->i_ctime	= fattr->f_ctime;
-	inode->i_blksize= fattr->f_blksize;
 	inode->i_blocks = fattr->f_blocks;
 	inode->i_size	= fattr->f_size;
 	inode->i_mtime	= fattr->f_mtime;
diff -puN fs/smbfs/proc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/smbfs/proc.c
--- a/fs/smbfs/proc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/smbfs/proc.c
@@ -1826,7 +1826,6 @@ smb_init_dirent(struct smb_sb_info *serv
 	fattr->f_nlink = 1;
 	fattr->f_uid = server->mnt->uid;
 	fattr->f_gid = server->mnt->gid;
-	fattr->f_blksize = SMB_ST_BLKSIZE;
 	fattr->f_unix = 0;
 }
 
diff -puN fs/stat.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/stat.c
--- a/fs/stat.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/stat.c
@@ -14,6 +14,7 @@
 #include <linux/namei.h>
 #include <linux/security.h>
 #include <linux/syscalls.h>
+#include <linux/pagemap.h>
 
 #include <asm/uaccess.h>
 #include <asm/unistd.h>
@@ -32,7 +33,7 @@ void generic_fillattr(struct inode *inod
 	stat->ctime = inode->i_ctime;
 	stat->size = i_size_read(inode);
 	stat->blocks = inode->i_blocks;
-	stat->blksize = inode->i_blksize;
+	stat->blksize = PAGE_CACHE_SIZE;
 }
 
 EXPORT_SYMBOL(generic_fillattr);
diff -puN fs/sysfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/sysfs/inode.c
--- a/fs/sysfs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/sysfs/inode.c
@@ -113,7 +113,6 @@ struct inode * sysfs_new_inode(mode_t mo
 {
 	struct inode * inode = new_inode(sysfs_sb);
 	if (inode) {
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->a_ops = &sysfs_aops;
 		inode->i_mapping->backing_dev_info = &sysfs_backing_dev_info;
diff -puN fs/sysv/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/sysv/ialloc.c
--- a/fs/sysv/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/sysv/ialloc.c
@@ -170,7 +170,7 @@ struct inode * sysv_new_inode(const stru
 	inode->i_uid = current->fsuid;
 	inode->i_ino = fs16_to_cpu(sbi, ino);
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 	memset(SYSV_I(inode)->i_data, 0, sizeof(SYSV_I(inode)->i_data));
 	SYSV_I(inode)->i_dir_start_lookup = 0;
 	insert_inode_hash(inode);
diff -puN fs/sysv/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/sysv/inode.c
--- a/fs/sysv/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/sysv/inode.c
@@ -201,7 +201,7 @@ static void sysv_read_inode(struct inode
 	inode->i_ctime.tv_nsec = 0;
 	inode->i_atime.tv_nsec = 0;
 	inode->i_mtime.tv_nsec = 0;
-	inode->i_blocks = inode->i_blksize = 0;
+	inode->i_blocks = 0;
 
 	si = SYSV_I(inode);
 	for (block = 0; block < 10+1+1+1; block++)
diff -puN fs/udf/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/udf/ialloc.c
--- a/fs/udf/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/udf/ialloc.c
@@ -120,7 +120,6 @@ struct inode * udf_new_inode (struct ino
 	UDF_I_LOCATION(inode).logicalBlockNum = block;
 	UDF_I_LOCATION(inode).partitionReferenceNum = UDF_I_LOCATION(dir).partitionReferenceNum;
 	inode->i_ino = udf_get_lb_pblock(sb, UDF_I_LOCATION(inode), 0);
-	inode->i_blksize = PAGE_SIZE;
 	inode->i_blocks = 0;
 	UDF_I_LENEATTR(inode) = 0;
 	UDF_I_LENALLOC(inode) = 0;
diff -puN fs/udf/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/udf/inode.c
--- a/fs/udf/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/udf/inode.c
@@ -916,8 +916,6 @@ __udf_read_inode(struct inode *inode)
 	 *      i_nlink = 1
 	 *      i_op = NULL;
 	 */
-	inode->i_blksize = PAGE_SIZE;
-
 	bh = udf_read_ptagged(inode->i_sb, UDF_I_LOCATION(inode), 0, &ident);
 
 	if (!bh)
diff -puN fs/ufs/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ufs/ialloc.c
--- a/fs/ufs/ialloc.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ufs/ialloc.c
@@ -255,7 +255,6 @@ cg_found:
 		inode->i_gid = current->fsgid;
 
 	inode->i_ino = cg * uspi->s_ipg + bit;
-	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size (for stat), not the fs block size */
 	inode->i_blocks = 0;
 	inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
 	ufsi->i_flags = UFS_I(dir)->i_flags;
diff -puN fs/ufs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/ufs/inode.c
--- a/fs/ufs/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/ufs/inode.c
@@ -734,7 +734,6 @@ void ufs_read_inode(struct inode * inode
 		ufs1_read_inode(inode, ufs_inode + ufs_inotofsbo(inode->i_ino));
 	}
 
-	inode->i_blksize = PAGE_SIZE;/*This is the optimal IO size (for stat)*/
 	inode->i_version++;
 	ufsi->i_lastfrag =
 		(inode->i_size + uspi->s_fsize - 1) >> uspi->s_fshift;
diff -puN fs/xfs/linux-2.6/xfs_super.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/xfs/linux-2.6/xfs_super.c
--- a/fs/xfs/linux-2.6/xfs_super.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/xfs/linux-2.6/xfs_super.c
@@ -171,7 +171,6 @@ xfs_revalidate_inode(
 		break;
 	}
 
-	inode->i_blksize = xfs_preferred_iosize(mp);
 	inode->i_generation = ip->i_d.di_gen;
 	i_size_write(inode, ip->i_d.di_size);
 	inode->i_blocks =
diff -puN fs/xfs/linux-2.6/xfs_vnode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default fs/xfs/linux-2.6/xfs_vnode.c
--- a/fs/xfs/linux-2.6/xfs_vnode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/fs/xfs/linux-2.6/xfs_vnode.c
@@ -122,7 +122,6 @@ vn_revalidate_core(
 	inode->i_blocks	    = vap->va_nblocks;
 	inode->i_mtime	    = vap->va_mtime;
 	inode->i_ctime	    = vap->va_ctime;
-	inode->i_blksize    = vap->va_blocksize;
 	if (vap->va_xflags & XFS_XFLAG_IMMUTABLE)
 		inode->i_flags |= S_IMMUTABLE;
 	else
diff -puN include/linux/fs.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default include/linux/fs.h
--- a/include/linux/fs.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/include/linux/fs.h
@@ -507,7 +507,6 @@ struct inode {
 	struct timespec		i_mtime;
 	struct timespec		i_ctime;
 	unsigned int		i_blkbits;
-	unsigned long		i_blksize;
 	unsigned long		i_version;
 	blkcnt_t		i_blocks;
 	unsigned short          i_bytes;
diff -puN include/linux/nfsd/nfsfh.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default include/linux/nfsd/nfsfh.h
--- a/include/linux/nfsd/nfsfh.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/include/linux/nfsd/nfsfh.h
@@ -269,14 +269,8 @@ fill_post_wcc(struct svc_fh *fhp)
 	fhp->fh_post_uid	= inode->i_uid;
 	fhp->fh_post_gid	= inode->i_gid;
 	fhp->fh_post_size       = inode->i_size;
-	if (inode->i_blksize) {
-		fhp->fh_post_blksize    = inode->i_blksize;
-		fhp->fh_post_blocks     = inode->i_blocks;
-	} else {
-		fhp->fh_post_blksize    = BLOCK_SIZE;
-		/* how much do we care for accuracy with MinixFS? */
-		fhp->fh_post_blocks     = (inode->i_size+511) >> 9;
-	}
+	fhp->fh_post_blksize    = BLOCK_SIZE;
+	fhp->fh_post_blocks     = inode->i_blocks;
 	fhp->fh_post_rdev[0]    = htonl((u32)imajor(inode));
 	fhp->fh_post_rdev[1]    = htonl((u32)iminor(inode));
 	fhp->fh_post_atime      = inode->i_atime;
diff -puN include/linux/smb.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default include/linux/smb.h
--- a/include/linux/smb.h~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/include/linux/smb.h
@@ -88,7 +88,6 @@ struct smb_fattr {
 	struct timespec	f_atime;
 	struct timespec f_mtime;
 	struct timespec f_ctime;
-	unsigned long	f_blksize;
 	unsigned long	f_blocks;
 	int		f_unix;
 };
diff -puN ipc/mqueue.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default ipc/mqueue.c
--- a/ipc/mqueue.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/ipc/mqueue.c
@@ -115,7 +115,6 @@ static struct inode *mqueue_get_inode(st
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mtime = inode->i_ctime = inode->i_atime =
 				CURRENT_TIME;
diff -puN kernel/cpuset.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default kernel/cpuset.c
--- a/kernel/cpuset.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/kernel/cpuset.c
@@ -289,7 +289,6 @@ static struct inode *cpuset_new_inode(mo
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 		inode->i_mapping->backing_dev_info = &cpuset_backing_dev_info;
diff -puN mm/shmem.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default mm/shmem.c
--- a/mm/shmem.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/mm/shmem.c
@@ -1350,7 +1350,6 @@ shmem_get_inode(struct super_block *sb, 
 		inode->i_mode = mode;
 		inode->i_uid = current->fsuid;
 		inode->i_gid = current->fsgid;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_mapping->a_ops = &shmem_aops;
 		inode->i_mapping->backing_dev_info = &shmem_backing_dev_info;
diff -puN net/sunrpc/rpc_pipe.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default net/sunrpc/rpc_pipe.c
--- a/net/sunrpc/rpc_pipe.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/net/sunrpc/rpc_pipe.c
@@ -490,7 +490,6 @@ rpc_get_inode(struct super_block *sb, in
 		return NULL;
 	inode->i_mode = mode;
 	inode->i_uid = inode->i_gid = 0;
-	inode->i_blksize = PAGE_CACHE_SIZE;
 	inode->i_blocks = 0;
 	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 	switch(mode & S_IFMT) {
diff -puN security/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default security/inode.c
--- a/security/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/security/inode.c
@@ -64,7 +64,6 @@ static struct inode *get_inode(struct su
 		inode->i_mode = mode;
 		inode->i_uid = 0;
 		inode->i_gid = 0;
-		inode->i_blksize = PAGE_CACHE_SIZE;
 		inode->i_blocks = 0;
 		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
 		switch (mode & S_IFMT) {
diff -puN security/selinux/selinuxfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default security/selinux/selinuxfs.c
--- a/security/selinux/selinuxfs.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default
+++ a/security/selinux/selinuxfs.c
@@ -771,7 +771,6 @@ static struct inode *sel_make_inode(stru
 	if (ret) {
 		ret->i_mode = mode;
 		ret->i_uid = ret->i_gid = 0;
-		ret->i_blksize = PAGE_CACHE_SIZE;
 		ret->i_blocks = 0;
 		ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
 	}
_