diff options
Diffstat (limited to 'fs/nilfs2/the_nilfs.c')
| -rw-r--r-- | fs/nilfs2/the_nilfs.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c index 94c451ce6d2..8ba8229ba07 100644 --- a/fs/nilfs2/the_nilfs.c +++ b/fs/nilfs2/the_nilfs.c @@ -399,6 +399,16 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,  		return -EINVAL;  	nilfs->ns_inode_size = le16_to_cpu(sbp->s_inode_size); +	if (nilfs->ns_inode_size > nilfs->ns_blocksize) { +		printk(KERN_ERR "NILFS: too large inode size: %d bytes.\n", +		       nilfs->ns_inode_size); +		return -EINVAL; +	} else if (nilfs->ns_inode_size < NILFS_MIN_INODE_SIZE) { +		printk(KERN_ERR "NILFS: too small inode size: %d bytes.\n", +		       nilfs->ns_inode_size); +		return -EINVAL; +	} +  	nilfs->ns_first_ino = le32_to_cpu(sbp->s_first_ino);  	nilfs->ns_blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment);  | 
