diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 3e78af2ae7d8d7b1bd795ceb1ee196c4d3a7e98f..51b4c43b97e4a97f39c85269ed3272531dd9485a 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include "ext2.h" #include "xattr.h" @@ -862,7 +863,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) sbi->s_inode_size = le16_to_cpu(es->s_inode_size); sbi->s_first_ino = le32_to_cpu(es->s_first_ino); if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) || - (sbi->s_inode_size & (sbi->s_inode_size - 1)) || + !is_power_of_2(sbi->s_inode_size) || (sbi->s_inode_size > blocksize)) { printk ("EXT2-fs: unsupported inode size: %d\n", sbi->s_inode_size); diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 0e829cc8a18adbaadbc470cf3912e0a9c945ae85..4c8d31c6145442e3236aa9785b2b6889100bdcad 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -1738,7 +1738,7 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_64BIT)) { if (sbi->s_desc_size < EXT4_MIN_DESC_SIZE_64BIT || sbi->s_desc_size > EXT4_MAX_DESC_SIZE || - sbi->s_desc_size & (sbi->s_desc_size - 1)) { + !is_power_of_2(sbi->s_desc_size)) { printk(KERN_ERR "EXT4-fs: unsupported descriptor size %lu\n", sbi->s_desc_size);