diff options
Diffstat (limited to 'fs/hpfs/super.c')
-rw-r--r-- | fs/hpfs/super.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index cf6fe4ad651a..cadc4ce48656 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/magic.h> | 14 | #include <linux/magic.h> |
15 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
16 | #include <linux/smp_lock.h> | 16 | #include <linux/smp_lock.h> |
17 | #include <linux/bitmap.h> | ||
17 | 18 | ||
18 | /* Mark the filesystem dirty, so that chkdsk checks it when os/2 booted */ | 19 | /* Mark the filesystem dirty, so that chkdsk checks it when os/2 booted */ |
19 | 20 | ||
@@ -115,12 +116,13 @@ static void hpfs_put_super(struct super_block *s) | |||
115 | unsigned hpfs_count_one_bitmap(struct super_block *s, secno secno) | 116 | unsigned hpfs_count_one_bitmap(struct super_block *s, secno secno) |
116 | { | 117 | { |
117 | struct quad_buffer_head qbh; | 118 | struct quad_buffer_head qbh; |
118 | unsigned *bits; | 119 | unsigned long *bits; |
119 | unsigned i, count; | 120 | unsigned count; |
120 | if (!(bits = hpfs_map_4sectors(s, secno, &qbh, 4))) return 0; | 121 | |
121 | count = 0; | 122 | bits = hpfs_map_4sectors(s, secno, &qbh, 4); |
122 | for (i = 0; i < 2048 / sizeof(unsigned); i++) | 123 | if (!bits) |
123 | count += hweight32(bits[i]); | 124 | return 0; |
125 | count = bitmap_weight(bits, 2048 * BITS_PER_BYTE); | ||
124 | hpfs_brelse4(&qbh); | 126 | hpfs_brelse4(&qbh); |
125 | return count; | 127 | return count; |
126 | } | 128 | } |