diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 22ff6ed55ce9a2d685024bfadf3aabb1eed68fa5..2b3011689e89e4aff651b3f3f8ca05775d3d4a78 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c @@ -87,6 +87,7 @@ #include #include #include +#include #include "swab.h" #include "util.h" @@ -854,7 +855,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent) uspi->s_fmask = fs32_to_cpu(sb, usb1->fs_fmask); uspi->s_fshift = fs32_to_cpu(sb, usb1->fs_fshift); - if (uspi->s_fsize & (uspi->s_fsize - 1)) { + if (!is_power_of_2(uspi->s_fsize)) { printk(KERN_ERR "ufs_read_super: fragment size %u is not a power of 2\n", uspi->s_fsize); goto failed; @@ -869,7 +870,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent) uspi->s_fsize); goto failed; } - if (uspi->s_bsize & (uspi->s_bsize - 1)) { + if (!is_power_of_2(uspi->s_bsize)) { printk(KERN_ERR "ufs_read_super: block size %u is not a power of 2\n", uspi->s_bsize); goto failed;