From d582bf966b7ebfa3a769b5a4c54c954ee3aa5ac2 Mon Sep 17 00:00:00 2001 From: Vignesh Babu BM Date: Tue, 8 May 2007 00:24:27 -0700 Subject: [PATCH] --- yaml --- r: 54551 b: refs/heads/master c: e7d709c096487078652a1384d7a2d0e4459e18b6 h: refs/heads/master i: 54549: 31b9a57f17f052533b44db555477e55cb68517e5 54547: bd9b686ef4e5e181b496c8d9d880c6f6c5b3b2c2 54543: 38b8a2c64f8633ee633e5c5e015414ab452bfce9 v: v3 --- [refs] | 2 +- trunk/fs/fat/inode.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 5689a9471deb..265cff00fecf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4fa156ea846daae44d60b05ea066d0e28fd3b6c4 +refs/heads/master: e7d709c096487078652a1384d7a2d0e4459e18b6 diff --git a/trunk/fs/fat/inode.c b/trunk/fs/fat/inode.c index 65cb54bde481..a8129e82d594 100644 --- a/trunk/fs/fat/inode.c +++ b/trunk/fs/fat/inode.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #ifndef CONFIG_FAT_DEFAULT_IOCHARSET @@ -1217,8 +1218,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, } logical_sector_size = le16_to_cpu(get_unaligned((__le16 *)&b->sector_size)); - if (!logical_sector_size - || (logical_sector_size & (logical_sector_size - 1)) + if (!is_power_of_2(logical_sector_size) || (logical_sector_size < 512) || (PAGE_CACHE_SIZE < logical_sector_size)) { if (!silent) @@ -1228,8 +1228,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, goto out_invalid; } sbi->sec_per_clus = b->sec_per_clus; - if (!sbi->sec_per_clus - || (sbi->sec_per_clus & (sbi->sec_per_clus - 1))) { + if (!is_power_of_2(sbi->sec_per_clus)) { if (!silent) printk(KERN_ERR "FAT: bogus sectors per cluster %u\n", sbi->sec_per_clus);