core/fs: abstract filesystem, use cache for ext2 group descriptors
authorH. Peter Anvin <hpa@zytor.com>
Mon, 25 Jan 2010 22:53:32 +0000 (14:53 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 25 Jan 2010 22:53:32 +0000 (14:53 -0800)
commit413a70918e18bcdf1922583ed7a1c79ccbe4a4b7
treedc65df10d14154cbf4f51ce2b6088143f4f4c90f
parent1f89ba5debfd8f0d535dba41be7d7dde247de704
core/fs: abstract filesystem, use cache for ext2 group descriptors

Abstract out the filesystem, remove all references to "this_fs" in the
main filesystem drivers. There is still some in the core (dir.c, fs.c)
which eventually need to be replaced by a properly defined device
marker and root.

The inode structure now contains a reference to its parent filesystem.

The inode structure can now contain additional data at the end of the
structure, this is used for filesystem private data.

TODO: move the filesystem private data into proper structures.

Finally, use the block cache for ext2 block group descriptors.  Trying
to allocate them all at filesystem mount time doesn't work for large
filesystems.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
core/dir.c
core/fs.c
core/fs/ext2/bmap.c
core/fs/ext2/ext2.c
core/fs/ext2/ext2_fs.h
core/fs/fat/fat.c
core/fs/iso9660/iso9660.c
core/include/core.h
core/include/fs.h
core/malloc.c