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

Reply via email to