diff options
Diffstat (limited to 'fs/ext3/bitmap.c')
-rw-r--r-- | fs/ext3/bitmap.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fs/ext3/bitmap.c b/fs/ext3/bitmap.c new file mode 100644 index 000000000000..6c419b9ab0e8 --- /dev/null +++ b/fs/ext3/bitmap.c | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * linux/fs/ext3/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 | |||
13 | static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; | ||
14 | |||
15 | unsigned long ext3_count_free (struct buffer_head * map, unsigned int numchars) | ||
16 | { | ||
17 | unsigned int i; | ||
18 | unsigned long sum = 0; | ||
19 | |||
20 | if (!map) | ||
21 | return (0); | ||
22 | for (i = 0; i < numchars; i++) | ||
23 | sum += nibblemap[map->b_data[i] & 0xf] + | ||
24 | nibblemap[(map->b_data[i] >> 4) & 0xf]; | ||
25 | return (sum); | ||
26 | } | ||