diff options
author | Fabian Frederick <fabf@skynet.be> | 2017-02-27 17:28:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-27 21:43:46 -0500 |
commit | 93407472a21b82f39c955ea7787e5bc7da100642 (patch) | |
tree | 217e8f21de0bd132d39d81c555e6cffa51ff348b | |
parent | d31712009709774506e536a3cc1f7c512f550a0c (diff) |
fs: add i_blocksize()
Replace all 1 << inode->i_blkbits and (1 << inode->i_blkbits) in fs
branch.
This patch also fixes multiple checkpatch warnings: WARNING: Prefer
'unsigned int' to bare use of 'unsigned'
Thanks to Andrew Morton for suggesting more appropriate function instead
of macro.
[geliangtang@gmail.com: truncate: use i_blocksize()]
Link: http://lkml.kernel.org/r/9c8b2cd83c8f5653805d43debde9fa8817e02fc4.1484895804.git.geliangtang@gmail.com
Link: http://lkml.kernel.org/r/1481319905-10126-1-git-send-email-fabf@skynet.be
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/block_dev.c | 2 | ||||
-rw-r--r-- | fs/btrfs/file.c | 2 | ||||
-rw-r--r-- | fs/buffer.c | 12 | ||||
-rw-r--r-- | fs/ceph/addr.c | 2 | ||||
-rw-r--r-- | fs/direct-io.c | 2 | ||||
-rw-r--r-- | fs/ext4/inode.c | 6 | ||||
-rw-r--r-- | fs/ext4/mballoc.c | 2 | ||||
-rw-r--r-- | fs/ext4/move_extent.c | 2 | ||||
-rw-r--r-- | fs/iomap.c | 10 | ||||
-rw-r--r-- | fs/jfs/super.c | 4 | ||||
-rw-r--r-- | fs/mpage.c | 2 | ||||
-rw-r--r-- | fs/nfsd/blocklayout.c | 6 | ||||
-rw-r--r-- | fs/nilfs2/btnode.c | 2 | ||||
-rw-r--r-- | fs/nilfs2/inode.c | 4 | ||||
-rw-r--r-- | fs/nilfs2/mdt.c | 4 | ||||
-rw-r--r-- | fs/nilfs2/segment.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/aops.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/file.c | 2 | ||||
-rw-r--r-- | fs/orangefs/orangefs-utils.c | 4 | ||||
-rw-r--r-- | fs/reiserfs/file.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/inode.c | 2 | ||||
-rw-r--r-- | fs/stat.c | 2 | ||||
-rw-r--r-- | fs/udf/inode.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_aops.c | 16 | ||||
-rw-r--r-- | fs/xfs/xfs_file.c | 4 | ||||
-rw-r--r-- | include/linux/fs.h | 5 | ||||
-rw-r--r-- | mm/truncate.c | 2 |
27 files changed, 56 insertions, 51 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 1c62845a72c7..77c30f15a02c 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -989,7 +989,7 @@ struct block_device *bdget(dev_t dev) | |||
989 | bdev->bd_super = NULL; | 989 | bdev->bd_super = NULL; |
990 | bdev->bd_inode = inode; | 990 | bdev->bd_inode = inode; |
991 | bdev->bd_bdi = &noop_backing_dev_info; | 991 | bdev->bd_bdi = &noop_backing_dev_info; |
992 | bdev->bd_block_size = (1 << inode->i_blkbits); | 992 | bdev->bd_block_size = i_blocksize(inode); |
993 | bdev->bd_part_count = 0; | 993 | bdev->bd_part_count = 0; |
994 | bdev->bd_invalidated = 0; | 994 | bdev->bd_invalidated = 0; |
995 | inode->i_mode = S_IFBLK; | 995 | inode->i_mode = S_IFBLK; |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 18e5146df864..c1d2a07205da 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -2875,7 +2875,7 @@ static long btrfs_fallocate(struct file *file, int mode, | |||
2875 | if (!ret) | 2875 | if (!ret) |
2876 | ret = btrfs_prealloc_file_range(inode, mode, | 2876 | ret = btrfs_prealloc_file_range(inode, mode, |
2877 | range->start, | 2877 | range->start, |
2878 | range->len, 1 << inode->i_blkbits, | 2878 | range->len, i_blocksize(inode), |
2879 | offset + len, &alloc_hint); | 2879 | offset + len, &alloc_hint); |
2880 | else | 2880 | else |
2881 | btrfs_free_reserved_data_space(inode, range->start, | 2881 | btrfs_free_reserved_data_space(inode, range->start, |
diff --git a/fs/buffer.c b/fs/buffer.c index 0e87401cf335..28484b3ebc98 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -2395,7 +2395,7 @@ static int cont_expand_zero(struct file *file, struct address_space *mapping, | |||
2395 | loff_t pos, loff_t *bytes) | 2395 | loff_t pos, loff_t *bytes) |
2396 | { | 2396 | { |
2397 | struct inode *inode = mapping->host; | 2397 | struct inode *inode = mapping->host; |
2398 | unsigned blocksize = 1 << inode->i_blkbits; | 2398 | unsigned int blocksize = i_blocksize(inode); |
2399 | struct page *page; | 2399 | struct page *page; |
2400 | void *fsdata; | 2400 | void *fsdata; |
2401 | pgoff_t index, curidx; | 2401 | pgoff_t index, curidx; |
@@ -2475,8 +2475,8 @@ int cont_write_begin(struct file *file, struct address_space *mapping, | |||
2475 | get_block_t *get_block, loff_t *bytes) | 2475 | get_block_t *get_block, loff_t *bytes) |
2476 | { | 2476 | { |
2477 | struct inode *inode = mapping->host; | 2477 | struct inode *inode = mapping->host; |
2478 | unsigned blocksize = 1 << inode->i_blkbits; | 2478 | unsigned int blocksize = i_blocksize(inode); |
2479 | unsigned zerofrom; | 2479 | unsigned int zerofrom; |
2480 | int err; | 2480 | int err; |
2481 | 2481 | ||
2482 | err = cont_expand_zero(file, mapping, pos, bytes); | 2482 | err = cont_expand_zero(file, mapping, pos, bytes); |
@@ -2838,7 +2838,7 @@ int nobh_truncate_page(struct address_space *mapping, | |||
2838 | struct buffer_head map_bh; | 2838 | struct buffer_head map_bh; |
2839 | int err; | 2839 | int err; |
2840 | 2840 | ||
2841 | blocksize = 1 << inode->i_blkbits; | 2841 | blocksize = i_blocksize(inode); |
2842 | length = offset & (blocksize - 1); | 2842 | length = offset & (blocksize - 1); |
2843 | 2843 | ||
2844 | /* Block boundary? Nothing to do */ | 2844 | /* Block boundary? Nothing to do */ |
@@ -2916,7 +2916,7 @@ int block_truncate_page(struct address_space *mapping, | |||
2916 | struct buffer_head *bh; | 2916 | struct buffer_head *bh; |
2917 | int err; | 2917 | int err; |
2918 | 2918 | ||
2919 | blocksize = 1 << inode->i_blkbits; | 2919 | blocksize = i_blocksize(inode); |
2920 | length = offset & (blocksize - 1); | 2920 | length = offset & (blocksize - 1); |
2921 | 2921 | ||
2922 | /* Block boundary? Nothing to do */ | 2922 | /* Block boundary? Nothing to do */ |
@@ -3028,7 +3028,7 @@ sector_t generic_block_bmap(struct address_space *mapping, sector_t block, | |||
3028 | struct inode *inode = mapping->host; | 3028 | struct inode *inode = mapping->host; |
3029 | tmp.b_state = 0; | 3029 | tmp.b_state = 0; |
3030 | tmp.b_blocknr = 0; | 3030 | tmp.b_blocknr = 0; |
3031 | tmp.b_size = 1 << inode->i_blkbits; | 3031 | tmp.b_size = i_blocksize(inode); |
3032 | get_block(inode, block, &tmp, 0); | 3032 | get_block(inode, block, &tmp, 0); |
3033 | return tmp.b_blocknr; | 3033 | return tmp.b_blocknr; |
3034 | } | 3034 | } |
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 09860c0ec7c1..7ce35aec8c76 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c | |||
@@ -751,7 +751,7 @@ static int ceph_writepages_start(struct address_space *mapping, | |||
751 | struct pagevec pvec; | 751 | struct pagevec pvec; |
752 | int done = 0; | 752 | int done = 0; |
753 | int rc = 0; | 753 | int rc = 0; |
754 | unsigned wsize = 1 << inode->i_blkbits; | 754 | unsigned int wsize = i_blocksize(inode); |
755 | struct ceph_osd_request *req = NULL; | 755 | struct ceph_osd_request *req = NULL; |
756 | int do_sync = 0; | 756 | int do_sync = 0; |
757 | loff_t snap_size, i_size; | 757 | loff_t snap_size, i_size; |
diff --git a/fs/direct-io.c b/fs/direct-io.c index c87bae4376b8..a04ebea77de8 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -587,7 +587,7 @@ static int dio_set_defer_completion(struct dio *dio) | |||
587 | /* | 587 | /* |
588 | * Call into the fs to map some more disk blocks. We record the current number | 588 | * Call into the fs to map some more disk blocks. We record the current number |
589 | * of available blocks at sdio->blocks_available. These are in units of the | 589 | * of available blocks at sdio->blocks_available. These are in units of the |
590 | * fs blocksize, (1 << inode->i_blkbits). | 590 | * fs blocksize, i_blocksize(inode). |
591 | * | 591 | * |
592 | * The fs is allowed to map lots of blocks at once. If it wants to do that, | 592 | * The fs is allowed to map lots of blocks at once. If it wants to do that, |
593 | * it uses the passed inode-relative block number as the file offset, as usual. | 593 | * it uses the passed inode-relative block number as the file offset, as usual. |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 41d8e53e5a7f..971f66342080 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -2221,7 +2221,7 @@ static int mpage_process_page_bufs(struct mpage_da_data *mpd, | |||
2221 | { | 2221 | { |
2222 | struct inode *inode = mpd->inode; | 2222 | struct inode *inode = mpd->inode; |
2223 | int err; | 2223 | int err; |
2224 | ext4_lblk_t blocks = (i_size_read(inode) + (1 << inode->i_blkbits) - 1) | 2224 | ext4_lblk_t blocks = (i_size_read(inode) + i_blocksize(inode) - 1) |
2225 | >> inode->i_blkbits; | 2225 | >> inode->i_blkbits; |
2226 | 2226 | ||
2227 | do { | 2227 | do { |
@@ -3577,7 +3577,7 @@ static ssize_t ext4_direct_IO_write(struct kiocb *iocb, struct iov_iter *iter) | |||
3577 | if (overwrite) | 3577 | if (overwrite) |
3578 | get_block_func = ext4_dio_get_block_overwrite; | 3578 | get_block_func = ext4_dio_get_block_overwrite; |
3579 | else if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS) || | 3579 | else if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS) || |
3580 | round_down(offset, 1 << inode->i_blkbits) >= inode->i_size) { | 3580 | round_down(offset, i_blocksize(inode)) >= inode->i_size) { |
3581 | get_block_func = ext4_dio_get_block; | 3581 | get_block_func = ext4_dio_get_block; |
3582 | dio_flags = DIO_LOCKING | DIO_SKIP_HOLES; | 3582 | dio_flags = DIO_LOCKING | DIO_SKIP_HOLES; |
3583 | } else if (is_sync_kiocb(iocb)) { | 3583 | } else if (is_sync_kiocb(iocb)) { |
@@ -5179,7 +5179,7 @@ static void ext4_wait_for_tail_page_commit(struct inode *inode) | |||
5179 | * do. We do the check mainly to optimize the common PAGE_SIZE == | 5179 | * do. We do the check mainly to optimize the common PAGE_SIZE == |
5180 | * blocksize case | 5180 | * blocksize case |
5181 | */ | 5181 | */ |
5182 | if (offset > PAGE_SIZE - (1 << inode->i_blkbits)) | 5182 | if (offset > PAGE_SIZE - i_blocksize(inode)) |
5183 | return; | 5183 | return; |
5184 | while (1) { | 5184 | while (1) { |
5185 | page = find_lock_page(inode->i_mapping, | 5185 | page = find_lock_page(inode->i_mapping, |
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 10c62de642c6..354dc1a894c2 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -838,7 +838,7 @@ static int ext4_mb_init_cache(struct page *page, char *incore, gfp_t gfp) | |||
838 | inode = page->mapping->host; | 838 | inode = page->mapping->host; |
839 | sb = inode->i_sb; | 839 | sb = inode->i_sb; |
840 | ngroups = ext4_get_groups_count(sb); | 840 | ngroups = ext4_get_groups_count(sb); |
841 | blocksize = 1 << inode->i_blkbits; | 841 | blocksize = i_blocksize(inode); |
842 | blocks_per_page = PAGE_SIZE / blocksize; | 842 | blocks_per_page = PAGE_SIZE / blocksize; |
843 | 843 | ||
844 | groups_per_page = blocks_per_page >> 1; | 844 | groups_per_page = blocks_per_page >> 1; |
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index 6fc14def0c70..578f8c33fb44 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c | |||
@@ -187,7 +187,7 @@ mext_page_mkuptodate(struct page *page, unsigned from, unsigned to) | |||
187 | if (PageUptodate(page)) | 187 | if (PageUptodate(page)) |
188 | return 0; | 188 | return 0; |
189 | 189 | ||
190 | blocksize = 1 << inode->i_blkbits; | 190 | blocksize = i_blocksize(inode); |
191 | if (!page_has_buffers(page)) | 191 | if (!page_has_buffers(page)) |
192 | create_empty_buffers(page, blocksize, 0); | 192 | create_empty_buffers(page, blocksize, 0); |
193 | 193 | ||
diff --git a/fs/iomap.c b/fs/iomap.c index d209f42cdcb8..0f85f2410605 100644 --- a/fs/iomap.c +++ b/fs/iomap.c | |||
@@ -420,8 +420,8 @@ int | |||
420 | iomap_truncate_page(struct inode *inode, loff_t pos, bool *did_zero, | 420 | iomap_truncate_page(struct inode *inode, loff_t pos, bool *did_zero, |
421 | const struct iomap_ops *ops) | 421 | const struct iomap_ops *ops) |
422 | { | 422 | { |
423 | unsigned blocksize = (1 << inode->i_blkbits); | 423 | unsigned int blocksize = i_blocksize(inode); |
424 | unsigned off = pos & (blocksize - 1); | 424 | unsigned int off = pos & (blocksize - 1); |
425 | 425 | ||
426 | /* Block boundary? Nothing to do */ | 426 | /* Block boundary? Nothing to do */ |
427 | if (!off) | 427 | if (!off) |
@@ -735,9 +735,9 @@ iomap_dio_actor(struct inode *inode, loff_t pos, loff_t length, | |||
735 | void *data, struct iomap *iomap) | 735 | void *data, struct iomap *iomap) |
736 | { | 736 | { |
737 | struct iomap_dio *dio = data; | 737 | struct iomap_dio *dio = data; |
738 | unsigned blkbits = blksize_bits(bdev_logical_block_size(iomap->bdev)); | 738 | unsigned int blkbits = blksize_bits(bdev_logical_block_size(iomap->bdev)); |
739 | unsigned fs_block_size = (1 << inode->i_blkbits), pad; | 739 | unsigned int fs_block_size = i_blocksize(inode), pad; |
740 | unsigned align = iov_iter_alignment(dio->submit.iter); | 740 | unsigned int align = iov_iter_alignment(dio->submit.iter); |
741 | struct iov_iter iter; | 741 | struct iov_iter iter; |
742 | struct bio *bio; | 742 | struct bio *bio; |
743 | bool need_zeroout = false; | 743 | bool need_zeroout = false; |
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 2be7c9ce6663..c64c2574a0aa 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -758,7 +758,7 @@ static ssize_t jfs_quota_read(struct super_block *sb, int type, char *data, | |||
758 | sb->s_blocksize - offset : toread; | 758 | sb->s_blocksize - offset : toread; |
759 | 759 | ||
760 | tmp_bh.b_state = 0; | 760 | tmp_bh.b_state = 0; |
761 | tmp_bh.b_size = 1 << inode->i_blkbits; | 761 | tmp_bh.b_size = i_blocksize(inode); |
762 | err = jfs_get_block(inode, blk, &tmp_bh, 0); | 762 | err = jfs_get_block(inode, blk, &tmp_bh, 0); |
763 | if (err) | 763 | if (err) |
764 | return err; | 764 | return err; |
@@ -798,7 +798,7 @@ static ssize_t jfs_quota_write(struct super_block *sb, int type, | |||
798 | sb->s_blocksize - offset : towrite; | 798 | sb->s_blocksize - offset : towrite; |
799 | 799 | ||
800 | tmp_bh.b_state = 0; | 800 | tmp_bh.b_state = 0; |
801 | tmp_bh.b_size = 1 << inode->i_blkbits; | 801 | tmp_bh.b_size = i_blocksize(inode); |
802 | err = jfs_get_block(inode, blk, &tmp_bh, 1); | 802 | err = jfs_get_block(inode, blk, &tmp_bh, 1); |
803 | if (err) | 803 | if (err) |
804 | goto out; | 804 | goto out; |
diff --git a/fs/mpage.c b/fs/mpage.c index 28af984a3d96..baff8f820c29 100644 --- a/fs/mpage.c +++ b/fs/mpage.c | |||
@@ -115,7 +115,7 @@ map_buffer_to_page(struct page *page, struct buffer_head *bh, int page_block) | |||
115 | SetPageUptodate(page); | 115 | SetPageUptodate(page); |
116 | return; | 116 | return; |
117 | } | 117 | } |
118 | create_empty_buffers(page, 1 << inode->i_blkbits, 0); | 118 | create_empty_buffers(page, i_blocksize(inode), 0); |
119 | } | 119 | } |
120 | head = page_buffers(page); | 120 | head = page_buffers(page); |
121 | page_bh = head; | 121 | page_bh = head; |
diff --git a/fs/nfsd/blocklayout.c b/fs/nfsd/blocklayout.c index a06115e31612..92b4b41d19d2 100644 --- a/fs/nfsd/blocklayout.c +++ b/fs/nfsd/blocklayout.c | |||
@@ -24,7 +24,7 @@ nfsd4_block_proc_layoutget(struct inode *inode, const struct svc_fh *fhp, | |||
24 | { | 24 | { |
25 | struct nfsd4_layout_seg *seg = &args->lg_seg; | 25 | struct nfsd4_layout_seg *seg = &args->lg_seg; |
26 | struct super_block *sb = inode->i_sb; | 26 | struct super_block *sb = inode->i_sb; |
27 | u32 block_size = (1 << inode->i_blkbits); | 27 | u32 block_size = i_blocksize(inode); |
28 | struct pnfs_block_extent *bex; | 28 | struct pnfs_block_extent *bex; |
29 | struct iomap iomap; | 29 | struct iomap iomap; |
30 | u32 device_generation = 0; | 30 | u32 device_generation = 0; |
@@ -181,7 +181,7 @@ nfsd4_block_proc_layoutcommit(struct inode *inode, | |||
181 | int nr_iomaps; | 181 | int nr_iomaps; |
182 | 182 | ||
183 | nr_iomaps = nfsd4_block_decode_layoutupdate(lcp->lc_up_layout, | 183 | nr_iomaps = nfsd4_block_decode_layoutupdate(lcp->lc_up_layout, |
184 | lcp->lc_up_len, &iomaps, 1 << inode->i_blkbits); | 184 | lcp->lc_up_len, &iomaps, i_blocksize(inode)); |
185 | if (nr_iomaps < 0) | 185 | if (nr_iomaps < 0) |
186 | return nfserrno(nr_iomaps); | 186 | return nfserrno(nr_iomaps); |
187 | 187 | ||
@@ -375,7 +375,7 @@ nfsd4_scsi_proc_layoutcommit(struct inode *inode, | |||
375 | int nr_iomaps; | 375 | int nr_iomaps; |
376 | 376 | ||
377 | nr_iomaps = nfsd4_scsi_decode_layoutupdate(lcp->lc_up_layout, | 377 | nr_iomaps = nfsd4_scsi_decode_layoutupdate(lcp->lc_up_layout, |
378 | lcp->lc_up_len, &iomaps, 1 << inode->i_blkbits); | 378 | lcp->lc_up_len, &iomaps, i_blocksize(inode)); |
379 | if (nr_iomaps < 0) | 379 | if (nr_iomaps < 0) |
380 | return nfserrno(nr_iomaps); | 380 | return nfserrno(nr_iomaps); |
381 | 381 | ||
diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c index d5c23da43513..c21e0b4454a6 100644 --- a/fs/nilfs2/btnode.c +++ b/fs/nilfs2/btnode.c | |||
@@ -50,7 +50,7 @@ nilfs_btnode_create_block(struct address_space *btnc, __u64 blocknr) | |||
50 | brelse(bh); | 50 | brelse(bh); |
51 | BUG(); | 51 | BUG(); |
52 | } | 52 | } |
53 | memset(bh->b_data, 0, 1 << inode->i_blkbits); | 53 | memset(bh->b_data, 0, i_blocksize(inode)); |
54 | bh->b_bdev = inode->i_sb->s_bdev; | 54 | bh->b_bdev = inode->i_sb->s_bdev; |
55 | bh->b_blocknr = blocknr; | 55 | bh->b_blocknr = blocknr; |
56 | set_buffer_mapped(bh); | 56 | set_buffer_mapped(bh); |
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index c7f4fef9ebf5..7ffe71a8dfb9 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c | |||
@@ -51,7 +51,7 @@ void nilfs_inode_add_blocks(struct inode *inode, int n) | |||
51 | { | 51 | { |
52 | struct nilfs_root *root = NILFS_I(inode)->i_root; | 52 | struct nilfs_root *root = NILFS_I(inode)->i_root; |
53 | 53 | ||
54 | inode_add_bytes(inode, (1 << inode->i_blkbits) * n); | 54 | inode_add_bytes(inode, i_blocksize(inode) * n); |
55 | if (root) | 55 | if (root) |
56 | atomic64_add(n, &root->blocks_count); | 56 | atomic64_add(n, &root->blocks_count); |
57 | } | 57 | } |
@@ -60,7 +60,7 @@ void nilfs_inode_sub_blocks(struct inode *inode, int n) | |||
60 | { | 60 | { |
61 | struct nilfs_root *root = NILFS_I(inode)->i_root; | 61 | struct nilfs_root *root = NILFS_I(inode)->i_root; |
62 | 62 | ||
63 | inode_sub_bytes(inode, (1 << inode->i_blkbits) * n); | 63 | inode_sub_bytes(inode, i_blocksize(inode) * n); |
64 | if (root) | 64 | if (root) |
65 | atomic64_sub(n, &root->blocks_count); | 65 | atomic64_sub(n, &root->blocks_count); |
66 | } | 66 | } |
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c index d56d3a5bea88..98835ed6bef4 100644 --- a/fs/nilfs2/mdt.c +++ b/fs/nilfs2/mdt.c | |||
@@ -57,7 +57,7 @@ nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block, | |||
57 | set_buffer_mapped(bh); | 57 | set_buffer_mapped(bh); |
58 | 58 | ||
59 | kaddr = kmap_atomic(bh->b_page); | 59 | kaddr = kmap_atomic(bh->b_page); |
60 | memset(kaddr + bh_offset(bh), 0, 1 << inode->i_blkbits); | 60 | memset(kaddr + bh_offset(bh), 0, i_blocksize(inode)); |
61 | if (init_block) | 61 | if (init_block) |
62 | init_block(inode, bh, kaddr); | 62 | init_block(inode, bh, kaddr); |
63 | flush_dcache_page(bh->b_page); | 63 | flush_dcache_page(bh->b_page); |
@@ -501,7 +501,7 @@ void nilfs_mdt_set_entry_size(struct inode *inode, unsigned int entry_size, | |||
501 | struct nilfs_mdt_info *mi = NILFS_MDT(inode); | 501 | struct nilfs_mdt_info *mi = NILFS_MDT(inode); |
502 | 502 | ||
503 | mi->mi_entry_size = entry_size; | 503 | mi->mi_entry_size = entry_size; |
504 | mi->mi_entries_per_block = (1 << inode->i_blkbits) / entry_size; | 504 | mi->mi_entries_per_block = i_blocksize(inode) / entry_size; |
505 | mi->mi_first_entry_offset = DIV_ROUND_UP(header_size, entry_size); | 505 | mi->mi_first_entry_offset = DIV_ROUND_UP(header_size, entry_size); |
506 | } | 506 | } |
507 | 507 | ||
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index bedcae2c28e6..7d18d62e8e07 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -723,7 +723,7 @@ static size_t nilfs_lookup_dirty_data_buffers(struct inode *inode, | |||
723 | 723 | ||
724 | lock_page(page); | 724 | lock_page(page); |
725 | if (!page_has_buffers(page)) | 725 | if (!page_has_buffers(page)) |
726 | create_empty_buffers(page, 1 << inode->i_blkbits, 0); | 726 | create_empty_buffers(page, i_blocksize(inode), 0); |
727 | unlock_page(page); | 727 | unlock_page(page); |
728 | 728 | ||
729 | bh = head = page_buffers(page); | 729 | bh = head = page_buffers(page); |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 11556b7d93ec..88a31e9340a0 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
@@ -608,7 +608,7 @@ int ocfs2_map_page_blocks(struct page *page, u64 *p_blkno, | |||
608 | int ret = 0; | 608 | int ret = 0; |
609 | struct buffer_head *head, *bh, *wait[2], **wait_bh = wait; | 609 | struct buffer_head *head, *bh, *wait[2], **wait_bh = wait; |
610 | unsigned int block_end, block_start; | 610 | unsigned int block_end, block_start; |
611 | unsigned int bsize = 1 << inode->i_blkbits; | 611 | unsigned int bsize = i_blocksize(inode); |
612 | 612 | ||
613 | if (!page_has_buffers(page)) | 613 | if (!page_has_buffers(page)) |
614 | create_empty_buffers(page, bsize, 0); | 614 | create_empty_buffers(page, bsize, 0); |
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 7b6a146327d7..8836305eb378 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -808,7 +808,7 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from, | |||
808 | /* We know that zero_from is block aligned */ | 808 | /* We know that zero_from is block aligned */ |
809 | for (block_start = zero_from; block_start < zero_to; | 809 | for (block_start = zero_from; block_start < zero_to; |
810 | block_start = block_end) { | 810 | block_start = block_end) { |
811 | block_end = block_start + (1 << inode->i_blkbits); | 811 | block_end = block_start + i_blocksize(inode); |
812 | 812 | ||
813 | /* | 813 | /* |
814 | * block_start is block-aligned. Bump it by one to force | 814 | * block_start is block-aligned. Bump it by one to force |
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c index 06af81f71e10..9b96b99539d6 100644 --- a/fs/orangefs/orangefs-utils.c +++ b/fs/orangefs/orangefs-utils.c | |||
@@ -306,7 +306,7 @@ int orangefs_inode_getattr(struct inode *inode, int new, int bypass) | |||
306 | break; | 306 | break; |
307 | case S_IFDIR: | 307 | case S_IFDIR: |
308 | inode->i_size = PAGE_SIZE; | 308 | inode->i_size = PAGE_SIZE; |
309 | orangefs_inode->blksize = (1 << inode->i_blkbits); | 309 | orangefs_inode->blksize = i_blocksize(inode); |
310 | spin_lock(&inode->i_lock); | 310 | spin_lock(&inode->i_lock); |
311 | inode_set_bytes(inode, inode->i_size); | 311 | inode_set_bytes(inode, inode->i_size); |
312 | spin_unlock(&inode->i_lock); | 312 | spin_unlock(&inode->i_lock); |
@@ -316,7 +316,7 @@ int orangefs_inode_getattr(struct inode *inode, int new, int bypass) | |||
316 | if (new) { | 316 | if (new) { |
317 | inode->i_size = (loff_t)strlen(new_op-> | 317 | inode->i_size = (loff_t)strlen(new_op-> |
318 | downcall.resp.getattr.link_target); | 318 | downcall.resp.getattr.link_target); |
319 | orangefs_inode->blksize = (1 << inode->i_blkbits); | 319 | orangefs_inode->blksize = i_blocksize(inode); |
320 | ret = strscpy(orangefs_inode->link_target, | 320 | ret = strscpy(orangefs_inode->link_target, |
321 | new_op->downcall.resp.getattr.link_target, | 321 | new_op->downcall.resp.getattr.link_target, |
322 | ORANGEFS_NAME_MAX); | 322 | ORANGEFS_NAME_MAX); |
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c index 2f8c5c9bdaf6..b396eb09f288 100644 --- a/fs/reiserfs/file.c +++ b/fs/reiserfs/file.c | |||
@@ -189,7 +189,7 @@ int reiserfs_commit_page(struct inode *inode, struct page *page, | |||
189 | int ret = 0; | 189 | int ret = 0; |
190 | 190 | ||
191 | th.t_trans_id = 0; | 191 | th.t_trans_id = 0; |
192 | blocksize = 1 << inode->i_blkbits; | 192 | blocksize = i_blocksize(inode); |
193 | 193 | ||
194 | if (logit) { | 194 | if (logit) { |
195 | reiserfs_write_lock(s); | 195 | reiserfs_write_lock(s); |
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index cfeae9b0a2b7..a6ab9d64ea1b 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -525,7 +525,7 @@ static int reiserfs_get_blocks_direct_io(struct inode *inode, | |||
525 | * referenced in convert_tail_for_hole() that may be called from | 525 | * referenced in convert_tail_for_hole() that may be called from |
526 | * reiserfs_get_block() | 526 | * reiserfs_get_block() |
527 | */ | 527 | */ |
528 | bh_result->b_size = (1 << inode->i_blkbits); | 528 | bh_result->b_size = i_blocksize(inode); |
529 | 529 | ||
530 | ret = reiserfs_get_block(inode, iblock, bh_result, | 530 | ret = reiserfs_get_block(inode, iblock, bh_result, |
531 | create | GET_BLOCK_NO_DANGLE); | 531 | create | GET_BLOCK_NO_DANGLE); |
@@ -31,7 +31,7 @@ void generic_fillattr(struct inode *inode, struct kstat *stat) | |||
31 | stat->atime = inode->i_atime; | 31 | stat->atime = inode->i_atime; |
32 | stat->mtime = inode->i_mtime; | 32 | stat->mtime = inode->i_mtime; |
33 | stat->ctime = inode->i_ctime; | 33 | stat->ctime = inode->i_ctime; |
34 | stat->blksize = (1 << inode->i_blkbits); | 34 | stat->blksize = i_blocksize(inode); |
35 | stat->blocks = inode->i_blocks; | 35 | stat->blocks = inode->i_blocks; |
36 | } | 36 | } |
37 | 37 | ||
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 8ec6b3df0bc7..a8d8f71ef8bd 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -1193,7 +1193,7 @@ int udf_setsize(struct inode *inode, loff_t newsize) | |||
1193 | { | 1193 | { |
1194 | int err; | 1194 | int err; |
1195 | struct udf_inode_info *iinfo; | 1195 | struct udf_inode_info *iinfo; |
1196 | int bsize = 1 << inode->i_blkbits; | 1196 | int bsize = i_blocksize(inode); |
1197 | 1197 | ||
1198 | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || | 1198 | if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || |
1199 | S_ISLNK(inode->i_mode))) | 1199 | S_ISLNK(inode->i_mode))) |
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index 1ff9df7a3ce8..bf65a9ea8642 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c | |||
@@ -103,9 +103,9 @@ xfs_finish_page_writeback( | |||
103 | unsigned int bsize; | 103 | unsigned int bsize; |
104 | 104 | ||
105 | ASSERT(bvec->bv_offset < PAGE_SIZE); | 105 | ASSERT(bvec->bv_offset < PAGE_SIZE); |
106 | ASSERT((bvec->bv_offset & ((1 << inode->i_blkbits) - 1)) == 0); | 106 | ASSERT((bvec->bv_offset & (i_blocksize(inode) - 1)) == 0); |
107 | ASSERT(end < PAGE_SIZE); | 107 | ASSERT(end < PAGE_SIZE); |
108 | ASSERT((bvec->bv_len & ((1 << inode->i_blkbits) - 1)) == 0); | 108 | ASSERT((bvec->bv_len & (i_blocksize(inode) - 1)) == 0); |
109 | 109 | ||
110 | bh = head = page_buffers(bvec->bv_page); | 110 | bh = head = page_buffers(bvec->bv_page); |
111 | 111 | ||
@@ -349,7 +349,7 @@ xfs_map_blocks( | |||
349 | { | 349 | { |
350 | struct xfs_inode *ip = XFS_I(inode); | 350 | struct xfs_inode *ip = XFS_I(inode); |
351 | struct xfs_mount *mp = ip->i_mount; | 351 | struct xfs_mount *mp = ip->i_mount; |
352 | ssize_t count = 1 << inode->i_blkbits; | 352 | ssize_t count = i_blocksize(inode); |
353 | xfs_fileoff_t offset_fsb, end_fsb; | 353 | xfs_fileoff_t offset_fsb, end_fsb; |
354 | int error = 0; | 354 | int error = 0; |
355 | int bmapi_flags = XFS_BMAPI_ENTIRE; | 355 | int bmapi_flags = XFS_BMAPI_ENTIRE; |
@@ -758,7 +758,7 @@ xfs_aops_discard_page( | |||
758 | break; | 758 | break; |
759 | } | 759 | } |
760 | next_buffer: | 760 | next_buffer: |
761 | offset += 1 << inode->i_blkbits; | 761 | offset += i_blocksize(inode); |
762 | 762 | ||
763 | } while ((bh = bh->b_this_page) != head); | 763 | } while ((bh = bh->b_this_page) != head); |
764 | 764 | ||
@@ -846,7 +846,7 @@ xfs_writepage_map( | |||
846 | LIST_HEAD(submit_list); | 846 | LIST_HEAD(submit_list); |
847 | struct xfs_ioend *ioend, *next; | 847 | struct xfs_ioend *ioend, *next; |
848 | struct buffer_head *bh, *head; | 848 | struct buffer_head *bh, *head; |
849 | ssize_t len = 1 << inode->i_blkbits; | 849 | ssize_t len = i_blocksize(inode); |
850 | int error = 0; | 850 | int error = 0; |
851 | int count = 0; | 851 | int count = 0; |
852 | int uptodate = 1; | 852 | int uptodate = 1; |
@@ -1210,7 +1210,7 @@ xfs_map_trim_size( | |||
1210 | offset + mapping_size >= i_size_read(inode)) { | 1210 | offset + mapping_size >= i_size_read(inode)) { |
1211 | /* limit mapping to block that spans EOF */ | 1211 | /* limit mapping to block that spans EOF */ |
1212 | mapping_size = roundup_64(i_size_read(inode) - offset, | 1212 | mapping_size = roundup_64(i_size_read(inode) - offset, |
1213 | 1 << inode->i_blkbits); | 1213 | i_blocksize(inode)); |
1214 | } | 1214 | } |
1215 | if (mapping_size > LONG_MAX) | 1215 | if (mapping_size > LONG_MAX) |
1216 | mapping_size = LONG_MAX; | 1216 | mapping_size = LONG_MAX; |
@@ -1241,7 +1241,7 @@ xfs_get_blocks( | |||
1241 | return -EIO; | 1241 | return -EIO; |
1242 | 1242 | ||
1243 | offset = (xfs_off_t)iblock << inode->i_blkbits; | 1243 | offset = (xfs_off_t)iblock << inode->i_blkbits; |
1244 | ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); | 1244 | ASSERT(bh_result->b_size >= i_blocksize(inode)); |
1245 | size = bh_result->b_size; | 1245 | size = bh_result->b_size; |
1246 | 1246 | ||
1247 | if (offset >= i_size_read(inode)) | 1247 | if (offset >= i_size_read(inode)) |
@@ -1389,7 +1389,7 @@ xfs_vm_set_page_dirty( | |||
1389 | if (offset < end_offset) | 1389 | if (offset < end_offset) |
1390 | set_buffer_dirty(bh); | 1390 | set_buffer_dirty(bh); |
1391 | bh = bh->b_this_page; | 1391 | bh = bh->b_this_page; |
1392 | offset += 1 << inode->i_blkbits; | 1392 | offset += i_blocksize(inode); |
1393 | } while (bh != head); | 1393 | } while (bh != head); |
1394 | } | 1394 | } |
1395 | /* | 1395 | /* |
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index a50eca676670..35703a801372 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c | |||
@@ -754,7 +754,7 @@ xfs_file_fallocate( | |||
754 | if (error) | 754 | if (error) |
755 | goto out_unlock; | 755 | goto out_unlock; |
756 | } else if (mode & FALLOC_FL_COLLAPSE_RANGE) { | 756 | } else if (mode & FALLOC_FL_COLLAPSE_RANGE) { |
757 | unsigned blksize_mask = (1 << inode->i_blkbits) - 1; | 757 | unsigned int blksize_mask = i_blocksize(inode) - 1; |
758 | 758 | ||
759 | if (offset & blksize_mask || len & blksize_mask) { | 759 | if (offset & blksize_mask || len & blksize_mask) { |
760 | error = -EINVAL; | 760 | error = -EINVAL; |
@@ -776,7 +776,7 @@ xfs_file_fallocate( | |||
776 | if (error) | 776 | if (error) |
777 | goto out_unlock; | 777 | goto out_unlock; |
778 | } else if (mode & FALLOC_FL_INSERT_RANGE) { | 778 | } else if (mode & FALLOC_FL_INSERT_RANGE) { |
779 | unsigned blksize_mask = (1 << inode->i_blkbits) - 1; | 779 | unsigned int blksize_mask = i_blocksize(inode) - 1; |
780 | 780 | ||
781 | new_size = i_size_read(inode) + len; | 781 | new_size = i_size_read(inode) + len; |
782 | if (offset & blksize_mask || len & blksize_mask) { | 782 | if (offset & blksize_mask || len & blksize_mask) { |
diff --git a/include/linux/fs.h b/include/linux/fs.h index c930cbc19342..c64f2cb7d364 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -655,6 +655,11 @@ struct inode { | |||
655 | void *i_private; /* fs or device private pointer */ | 655 | void *i_private; /* fs or device private pointer */ |
656 | }; | 656 | }; |
657 | 657 | ||
658 | static inline unsigned int i_blocksize(const struct inode *node) | ||
659 | { | ||
660 | return (1 << node->i_blkbits); | ||
661 | } | ||
662 | |||
658 | static inline int inode_unhashed(struct inode *inode) | 663 | static inline int inode_unhashed(struct inode *inode) |
659 | { | 664 | { |
660 | return hlist_unhashed(&inode->i_hash); | 665 | return hlist_unhashed(&inode->i_hash); |
diff --git a/mm/truncate.c b/mm/truncate.c index f2db67465495..6263affdef88 100644 --- a/mm/truncate.c +++ b/mm/truncate.c | |||
@@ -786,7 +786,7 @@ EXPORT_SYMBOL(truncate_setsize); | |||
786 | */ | 786 | */ |
787 | void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to) | 787 | void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to) |
788 | { | 788 | { |
789 | int bsize = 1 << inode->i_blkbits; | 789 | int bsize = i_blocksize(inode); |
790 | loff_t rounded_from; | 790 | loff_t rounded_from; |
791 | struct page *page; | 791 | struct page *page; |
792 | pgoff_t index; | 792 | pgoff_t index; |