diff options
Diffstat (limited to 'fs/ext2/bitmap.c')
-rw-r--r-- | fs/ext2/bitmap.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/fs/ext2/bitmap.c b/fs/ext2/bitmap.c new file mode 100644 index 000000000000..20145b74623f --- /dev/null +++ b/fs/ext2/bitmap.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * linux/fs/ext2/bitmap.c | ||
3 | * | ||
4 | * Copyright (C) 1992, 1993, 1994, 1995 | ||
5 | * Remy Card (card@masi.ibp.fr) | ||
6 | * Laboratoire MASI - Institut Blaise Pascal | ||
7 | * Universite Pierre et Marie Curie (Paris VI) | ||
8 | */ | ||
9 | |||
10 | #include <linux/buffer_head.h> | ||
11 | |||
12 | static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; | ||
13 | |||
14 | unsigned long ext2_count_free (struct buffer_head * map, unsigned int numchars) | ||
15 | { | ||
16 | unsigned int i; | ||
17 | unsigned long sum = 0; | ||
18 | |||
19 | if (!map) | ||
20 | return (0); | ||
21 | for (i = 0; i < numchars; i++) | ||
22 | sum += nibblemap[map->b_data[i] & 0xf] + | ||
23 | nibblemap[(map->b_data[i] >> 4) & 0xf]; | ||
24 | return (sum); | ||
25 | } | ||