[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTinZB5Qv1H-Dt0CQgVFF2_W85NwEdJN3M7nOw-Qo@mail.gmail.com>
Date: Tue, 19 Oct 2010 18:55:37 -0400
From: Greg Freemyer <greg.freemyer@...il.com>
To: Andreas Dilger <adilger@...ger.ca>
Cc: Felipe Franciosi <felipe@...adoxo.org>, linux-ext4@...r.kernel.org
Subject: Re: Committing changes to an ext3_inode structure
On Tue, Oct 19, 2010 at 5:56 PM, Andreas Dilger <adilger@...ger.ca> wrote:
> On 2010-10-19, at 09:23, Felipe Franciosi wrote:
>> I am experimenting on a 2.6.20.3-ubuntu1 kernel to prototype and evaluate different methods for migrating datablocks for a given inode on the fly.
>>
>> I have created an ioctl call that implements some verifications and invokes a function I wrote in balloc.c for such migration.
>
> Are you aware that there already is the ability to do on-the-fly migration of files in ext4? This was developed quite some time ago and is in ext4 in newer kernels (not sure of the exact version, maybe 2.6.32 or so).
>
> I would strongly recommend that you investigate that code, since it could definitely use some good testing/inspection/enhancement (as needed). It is in fs/ext4/migrate.c, though I'm not sure where the user-space tools are located (maybe e2fsprogs?).
>
> Cheers, Andreas
I'm not familiar with that code, I'm curious what it does?
But there is also the EXT4_IOC_MOVE_EXT ioctl which is called by
e4defrag primarily.
The code is in fs/ext4/move_extent.c
The concept is you allocate new blocks in a donor inode. Once you
have that done, then EXT4_IOC_MOVE_EXT will move the data from the
original data blocks to the new ones and replace the old original
blocks with the new donor blocks.
All done on the fly.
Greg
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists