On So, 2016-12-25 at 18:39 +1000, Warren Toomey wrote:
Filesystem
----------
The implementation of the filesystem is, in some places, quite
inefficient.
The free block list is implemented as follows. In each block, there
are
10 free block numbers then a pointer to the next part of the free
list.
However, each block can hold 64 block numbers, so why are only 10
free
block numbers stored in each block? By using the whole of a block to
store
free block numbers, there would actually be more free blocks to use!
Possibly there is a cache for free block numbers
located in the superblock? This is at least in V7
the reason for the limited number of free block
numbers contained in free blocks: if the cache
is to be refilled, the contents of a whole free
block must go into the cache, and this of course
cannot span a whole block, because its size is
only a fraction of the superblock's size.
Hellwig