[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 09:40:22 +0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010802

Andrew Clausen wrote:

Not supporting sparse files would suck.  Perhaps it would be nice
to hack up support (in a non-standard way) for FAT and friends?
I.e. write some special loopback driver? - not me, it's boring.

(What fs's don't support sparse files?)
Looking for cont_prepare_write() in linux/fs/*/* gives these moronic filesystems: qnx4fs, hpfs, hfs, fat, adfs, affs.

I can imagine.

When doing copying, you should get all the benefits of caching...

OTOH, this is also a drawback, since you can't control how the
sparse file is allocated.  It might fail.  I guess lots of sync()s
are needed.
4 fsync()s each block group (there is also a variant with 5 fsync()s and a few less copying - buggy).

Anyway, I've been thinking lots how to do the reshuffle... not
that I've grokked your code yet.

Me-and-riel have designed a qsort-like algorithm to minimize seeks,
and to touch the journal n times, where n is:

        n = 2 * fs_size * log2 (fs_size) / log2 (min (free space, RAM/4))

I haven't done a formal analysis of the seeks, but intuitively, it
does the "scatter-gather" thing in an efficient way...

Anyway, probably a bad idea to attempt implementing this without
understanding/trying your code... but it's too fun!
(Implementing now!)

I just can say that I personally not going to build yet another
grand partition/filesystem tool. I would prefer to see it (idea or code) integrated into some existing thing, e.g. parted.
But I'll certainly maintain current implementation.

Another thing is that implemented algorithm is somewhat buggy.
This is still proof-of-concept version.

Fair enough :)
Well, I revised my opinion :-) - it seems to me now that algorithm is correct (but does unneeded things)
Anyway I'll rewrite this part for cleanup.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]