X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fext2%2Fballoc.c;fp=fs%2Fext2%2Fballoc.c;h=21cee4fa1c92796083b5c7133e3178506f95d9dc;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=117ebb9ca88b72f998962adc8858bb913e45618a;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index 117ebb9ca..21cee4fa1 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c @@ -11,6 +11,7 @@ * David S. Miller (davem@caip.rutgers.edu), 1995 */ +#include #include "ext2.h" #include #include @@ -103,8 +104,8 @@ static int reserve_blocks(struct super_block *sb, int count) { struct ext2_sb_info *sbi = EXT2_SB(sb); struct ext2_super_block *es = sbi->s_es; - unsigned long free_blocks; - unsigned long root_blocks; + unsigned free_blocks; + unsigned root_blocks; free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); root_blocks = le32_to_cpu(es->s_r_blocks_count); @@ -530,25 +531,6 @@ io_error: goto out_release; } -#ifdef EXT2FS_DEBUG - -static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; - -unsigned long ext2_count_free (struct buffer_head * map, unsigned int numchars) -{ - unsigned int i; - unsigned long sum = 0; - - if (!map) - return (0); - for (i = 0; i < numchars; i++) - sum += nibblemap[map->b_data[i] & 0xf] + - nibblemap[(map->b_data[i] >> 4) & 0xf]; - return (sum); -} - -#endif /* EXT2FS_DEBUG */ - unsigned long ext2_count_free_blocks (struct super_block * sb) { struct ext2_group_desc * desc; @@ -558,6 +540,7 @@ unsigned long ext2_count_free_blocks (struct super_block * sb) unsigned long bitmap_count, x; struct ext2_super_block *es; + lock_super (sb); es = EXT2_SB(sb)->s_es; desc_count = 0; bitmap_count = 0; @@ -581,6 +564,7 @@ unsigned long ext2_count_free_blocks (struct super_block * sb) printk("ext2_count_free_blocks: stored = %lu, computed = %lu, %lu\n", (long)le32_to_cpu(es->s_free_blocks_count), desc_count, bitmap_count); + unlock_super (sb); return bitmap_count; #else for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) {