[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: universal filesystem convertor
From: |
Serguei Tzukanov |
Subject: |
Re: universal filesystem convertor |
Date: |
Thu, 10 Jan 2002 21:22:40 +0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010802 |
Nah, I mean make a non-standard version of file systems that don't
support sparse files, that do support them.
IMHO special loopback driver is a more generous solution.
Can you please define your terminology, and comment your struct's?
block has virtual and physical addresses: the former is the final
destination of the block and the latter is where it actually lie.
A continuous in virtual space block run is presented by struct chunk.
chunks collected into struct indexblock (with the same size as of
primary filesystem block size). indexblocks chained on the disk.
struct indexpage is in-memory presentation of indexblock.
A conversion at every logged step works with exactly one indexblock.
Step consists of four stages:
1) do all in-memory permutations, prepare and write journal; fsync()
(I just thought that this could be avoided :-)
2) fix on the disk changed indexblocks; write to the temporary place
inner blocks (blocks in the current indexpage); fsync()
3) write outer blocks to their inner places; fsync();
4) write blocks from temporary storage to the their corresponding outer
places. fsync().
Anyway I'll rewrite this part for cleanup.
Cool :)
I've put new version to the same site.