18e776a6c1
mainly to get control over new features. E.g., ext2fs filesystems may now have a type field in directory entries (like ufs has had for 20 years or so). Current versions of FreeBSD ext2fs panic on this. ext2fs filesystem code is supposed to check the feature flags in the superblock and take appropriate actions for unsupported features. The other new features are sparse superblocks, large file support, and btree'd directories.
28 lines
589 B
C
28 lines
589 B
C
/*
|
|
* linux/fs/ext2/bitmap.c
|
|
*
|
|
* Copyright (C) 1992, 1993, 1994, 1995
|
|
* Remy Card (card@masi.ibp.fr)
|
|
* Laboratoire MASI - Institut Blaise Pascal
|
|
* Universite Pierre et Marie Curie (Paris VI)
|
|
*/
|
|
|
|
#include <linux/fs.h>
|
|
|
|
|
|
|
|
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);
|
|
}
|