Re: [PATCH 2/2 v3] Btrfs: snapshot-aware defrag
From: Liu Bo <hidden>
Date: 2012-10-08 12:18:48
On 10/03/2012 10:02 PM, Chris Mason wrote:
On Tue, Sep 25, 2012 at 07:07:53PM -0600, Liu Bo wrote:quoted
On 09/26/2012 01:39 AM, Mitch Harder wrote:quoted
On Mon, Sep 17, 2012 at 4:58 AM, Liu Bo [off-list ref] wrote:quoted
This comes from one of btrfs's project ideas, As we defragment files, we break any sharing from other snapshots. The balancing code will preserve the sharing, and defrag needs to grow this as well. Now we're able to fill the blank with this patch, in which we make full use of backref walking stuff. Here is the basic idea, o set the writeback ranges started by defragment with flag EXTENT_DEFRAG o at endio, after we finish updating fs tree, we use backref walking to find all parents of the ranges and re-link them with the new COWed file layout by adding corresponding backrefs. Originally patch by Li Zefan [off-list ref] Signed-off-by: Liu Bo <redacted>I'm hitting the WARN_ON in record_extent_backrefs() indicating a problem with the return value from iterate_inodes_from_logical().Me too. It triggers reliably with mount -o autodefrag, and then crashes a in the next function ;) -chris
Hi Chris, Mitch, I'm afraid that I may need a little more time to fix all bugs in it because there seems to be some backref walking bugs mixed in, and at least 4 different crashes make it harder to address bugs. I use an 1G random write fio job running in background, following by creating 20 snapshots in background, and mount -o autodefrag. So if your crash is quite stable in one place, please let me know the steps. thanks, liubo