This patchset introduce 2 fixes for data extent owner hacks. One can be triggered by balance, another one can be trigged by log replay after power loss.
Root cause are all similar: EXTENT_DATA owner is changed by dirty hacks, from swapping tree blocks containing EXTENT_DATA to manually update extent backref without using inc/dec_extent_ref. The first patch introduces needed functions, then 2 fixes. The reproducer are all merged into xfstests, btrfs/123 and btrfs/119. The 2nd patch is sent to mail list weeks ago, only commit message and comment is updated. Qu Wenruo (3): btrfs: qgroup: Refactor btrfs_qgroup_insert_dirty_extent() btrfs: relocation: Fix leaking qgroups numbers on data extents btrfs: qgroup: Fix qgroup incorrectness caused by log replay fs/btrfs/delayed-ref.c | 5 +--- fs/btrfs/extent-tree.c | 36 ++++------------------ fs/btrfs/qgroup.c | 39 ++++++++++++++++++++---- fs/btrfs/qgroup.h | 44 +++++++++++++++++++++++++-- fs/btrfs/relocation.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/tree-log.c | 16 ++++++++++ 6 files changed, 178 insertions(+), 43 deletions(-) -- 2.9.0 -- 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