diff options
Diffstat (limited to 'fs/ext4/inode.c')
| -rw-r--r-- | fs/ext4/inode.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 986120f30066..5381802d6052 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #include <linux/bio.h> | 39 | #include <linux/bio.h> | 
| 40 | #include <linux/workqueue.h> | 40 | #include <linux/workqueue.h> | 
| 41 | #include <linux/kernel.h> | 41 | #include <linux/kernel.h> | 
| 42 | #include <linux/slab.h> | ||
| 42 | 43 | ||
| 43 | #include "ext4_jbd2.h" | 44 | #include "ext4_jbd2.h" | 
| 44 | #include "xattr.h" | 45 | #include "xattr.h" | 
| @@ -1035,7 +1036,7 @@ static int ext4_indirect_calc_metadata_amount(struct inode *inode, | |||
| 1035 | sector_t lblock) | 1036 | sector_t lblock) | 
| 1036 | { | 1037 | { | 
| 1037 | struct ext4_inode_info *ei = EXT4_I(inode); | 1038 | struct ext4_inode_info *ei = EXT4_I(inode); | 
| 1038 | int dind_mask = EXT4_ADDR_PER_BLOCK(inode->i_sb) - 1; | 1039 | sector_t dind_mask = ~((sector_t)EXT4_ADDR_PER_BLOCK(inode->i_sb) - 1); | 
| 1039 | int blk_bits; | 1040 | int blk_bits; | 
| 1040 | 1041 | ||
| 1041 | if (lblock < EXT4_NDIR_BLOCKS) | 1042 | if (lblock < EXT4_NDIR_BLOCKS) | 
| @@ -1050,7 +1051,7 @@ static int ext4_indirect_calc_metadata_amount(struct inode *inode, | |||
| 1050 | } | 1051 | } | 
| 1051 | ei->i_da_metadata_calc_last_lblock = lblock & dind_mask; | 1052 | ei->i_da_metadata_calc_last_lblock = lblock & dind_mask; | 
| 1052 | ei->i_da_metadata_calc_len = 1; | 1053 | ei->i_da_metadata_calc_len = 1; | 
| 1053 | blk_bits = roundup_pow_of_two(lblock + 1); | 1054 | blk_bits = order_base_2(lblock); | 
| 1054 | return (blk_bits / EXT4_ADDR_PER_BLOCK_BITS(inode->i_sb)) + 1; | 1055 | return (blk_bits / EXT4_ADDR_PER_BLOCK_BITS(inode->i_sb)) + 1; | 
| 1055 | } | 1056 | } | 
| 1056 | 1057 | ||
