summaryrefslogtreecommitdiffstats
path: root/fs/ext4/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r--fs/ext4/inode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 2ea07efbe016..7d6c10017bdf 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -402,9 +402,9 @@ static int __check_block_validity(struct inode *inode, const char *func,
402 if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk, 402 if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk,
403 map->m_len)) { 403 map->m_len)) {
404 ext4_error_inode(inode, func, line, map->m_pblk, 404 ext4_error_inode(inode, func, line, map->m_pblk,
405 "lblock %lu mapped to illegal pblock " 405 "lblock %lu mapped to illegal pblock %llu "
406 "(length %d)", (unsigned long) map->m_lblk, 406 "(length %d)", (unsigned long) map->m_lblk,
407 map->m_len); 407 map->m_pblk, map->m_len);
408 return -EFSCORRUPTED; 408 return -EFSCORRUPTED;
409 } 409 }
410 return 0; 410 return 0;
@@ -4506,7 +4506,8 @@ static int __ext4_get_inode_loc(struct inode *inode,
4506 int inodes_per_block, inode_offset; 4506 int inodes_per_block, inode_offset;
4507 4507
4508 iloc->bh = NULL; 4508 iloc->bh = NULL;
4509 if (!ext4_valid_inum(sb, inode->i_ino)) 4509 if (inode->i_ino < EXT4_ROOT_INO ||
4510 inode->i_ino > le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count))
4510 return -EFSCORRUPTED; 4511 return -EFSCORRUPTED;
4511 4512
4512 iloc->block_group = (inode->i_ino - 1) / EXT4_INODES_PER_GROUP(sb); 4513 iloc->block_group = (inode->i_ino - 1) / EXT4_INODES_PER_GROUP(sb);