btrfs: fix unwritten extent buffer after snapshotting a new subvolume
[sfrench/cifs-2.6.git] / fs / btrfs / relocation.c
index 9951a0caf5bbf961cdb535dc643b3dca6d08b9e8..c6d4bb8cbe299578dca2259ce98e2ab2e4f6877d 100644 (file)
@@ -466,6 +466,7 @@ static bool handle_useless_nodes(struct reloc_control *rc,
  * cached.
  */
 static noinline_for_stack struct btrfs_backref_node *build_backref_tree(
+                       struct btrfs_trans_handle *trans,
                        struct reloc_control *rc, struct btrfs_key *node_key,
                        int level, u64 bytenr)
 {
@@ -499,8 +500,8 @@ static noinline_for_stack struct btrfs_backref_node *build_backref_tree(
 
        /* Breadth-first search to build backref cache */
        do {
-               ret = btrfs_backref_add_tree_node(cache, path, iter, node_key,
-                                                 cur);
+               ret = btrfs_backref_add_tree_node(trans, cache, path, iter,
+                                                 node_key, cur);
                if (ret < 0) {
                        err = ret;
                        goto out;
@@ -2803,7 +2804,7 @@ int relocate_tree_blocks(struct btrfs_trans_handle *trans,
 
        /* Do tree relocation */
        rbtree_postorder_for_each_entry_safe(block, next, blocks, rb_node) {
-               node = build_backref_tree(rc, &block->key,
+               node = build_backref_tree(trans, rc, &block->key,
                                          block->level, block->bytenr);
                if (IS_ERR(node)) {
                        err = PTR_ERR(node);