Re: [RFC] Ext3 online defrag

Jeff Garzik
2006-10-25T18:08:21Z

On Wed, Oct 25, 2006 at 07:58:51PM +0200, Jan Kara wrote:
> I've briefly looked at this and this kind of interface has some
> appeal. On the other hand it's not obvious to me, how to implement in
> this interface *atomic* operation "copy data from file F to given set of
> blocks and rewrite pointers to original blocks with pointers to new
> blocks". Something like this is needed for what we want to do...
> Also if we'd like to implement operation like "add this block to file F
> at position P" we have to make sure that all the necessary updates
> (bitmap updates, inode updates, indirect block updates) go into one
> transaction. Which basically mean that either ext3meta has to have a way
> how to do this in a single operation, or we have to give userspace a way
> to start/stop transaction and that starts to be really a mess because of
> various deadlocks and so on.

Agreed, this issues exist. But these issues exist independent of
whether an ioctl or ext3meta is used. It's all the responsibility
of the implementor to define the interface.

My contention is that ext3meta interface method would be much more
robust than ioctl. It's a namespace inside which you can define any
inodes/dirents you wish, for the operations you desire.

Heck, according to my sf.net/projects/gkernel CVS log, you offered
some helpful review comments to me when I was implementing ext2meta ;-)

Jeff