From: "Theodore Ts'o" 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" Signed-off-by: Andrew Morton --- 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 @@ -663,7 +663,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); @@ -795,7 +796,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 @@ -2002,7 +2002,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/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/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/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 @@ -2630,9 +2630,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 @@ -118,7 +118,6 @@ void fuse_change_attributes(struct inode inode->i_uid = attr->uid; inode->i_gid = attr->gid; i_size_write(inode, attr->size); - 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 --- a/fs/gfs2/inode.c~inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default +++ a/fs/gfs2/inode.c @@ -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 @@ -357,7 +357,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/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/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/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 @@ -399,7 +399,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])); @@ -432,7 +432,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 @@ -277,10 +277,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; @@ -965,10 +963,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 @@ -271,7 +271,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) @@ -1196,7 +1195,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 #include -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, @@ -1122,7 +1120,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; @@ -1877,7 +1874,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 #include #include +#include #include #include @@ -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 @@ -125,7 +125,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 @@ -121,7 +121,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 @@ -741,7 +741,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 @@ -551,7 +551,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 @@ -1351,7 +1351,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 @@ -488,7 +488,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; } _