On 10/27/2016 07:33 PM, Qu Wenruo wrote:
> Any comment?
> 
> Especially the final patch will fix a long standing bug.
> 

While I have tested it, and it works, I did not get time to review it.
So, you can have my

Tested-by: Goldwyn Rodrigues <rgold...@suse.com>

> Thanks,
> Qu
> 
> At 10/18/2016 09:31 AM, Qu Wenruo wrote:
>> The patchset does the following things:
>> 1) Enhance comment for qgroup, rename 2 functions
>>    Explain the how qgroup works, so new developers won't waste too much
>>    time digging into the boring codes.
>>
>>    The qgroup work flow is split into 3 main phrases:
>>    Reverse, Trace, Account.
>>    And rename functions like btrfs_qgroup_insert_dirty_extent_record()
>>    to btrfs_qgroup_trace_extent(), to follow the "Trace" phrase.
>>
>>    Other function name already follows such schema before.
>>
>> 2) Move account_shared_subtree() and account_leaf_items() to qgroup.c
>>    Such functions are only used by qgroup, so move them to qgroup.c and
>>    rename them to follow "trace" schema.
>>
>> 3) Fix the long standing qgroup balance corruption
>>    Commit 62b99540a1d91e4 doesn't fix the problem completely.
>>    It can only handle case that merge_reloc_roots() are all done in one
>>    transaction.
>>
>>    If transaction commits during merge_reloc_roots(), the data extents
>>    will leak again.
>>
>>    The tree fix is to info qgroup to trace both subtree(tree reloc tree
>>    and destination fs tree), at replace_path() time.
>>    Inside  replace_path(), there is one transaction start and end, so we
>>    must make qgroup to trace both subtrees.
>>
>>    Thanks for previous work, now we can easily trace subtree, so the fix
>>    is quite simple now.
>>
>>    And the cause also makes it easier to create pinpoint test case for
>>    this bug.
>>
>> Qu Wenruo (4):
>>   btrfs: qgroup: Add comments explaining how btrfs qgroup works
>>   btrfs: qgroup: Rename functions to make it follow
>>     reserve,trace,account steps
>>   btrfs: Expoert and move leaf/subtree qgroup helpers to qgroup.c
>>   btrfs: qgroup: Fix qgroup data leaking by using subtree tracing
>>
>>  fs/btrfs/delayed-ref.c       |   2 +-
>>  fs/btrfs/extent-tree.c       | 220
>> +------------------------------------------
>>  fs/btrfs/qgroup.c            | 219
>> +++++++++++++++++++++++++++++++++++++++++-
>>  fs/btrfs/qgroup.h            |  64 +++++++++++--
>>  fs/btrfs/relocation.c        | 119 +++++------------------
>>  fs/btrfs/tree-log.c          |   2 +-
>>  include/trace/events/btrfs.h |   2 +-
>>  7 files changed, 302 insertions(+), 326 deletions(-)
>>
> 
> 

-- 
Goldwyn
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to