WARN_ON(btrfs_header_level(eb) != 0);
WARN_ON(btrfs_header_nritems(eb) != 0);
- ret = btrfs_free_extent(trans, fs_info->tree_root,
- eb->start, eb->len,
- BTRFS_TREE_LOG_OBJECTID, 0, 0, 0, 1);
+ ret = btrfs_free_reserved_extent(fs_info->tree_root,
+ eb->start, eb->len);
BUG_ON(ret);
free_extent_buffer(eb);
return 0;
}
/* if metadata always pin */
- if (owner_objectid < BTRFS_FIRST_FREE_OBJECTID)
+ if (owner_objectid < BTRFS_FIRST_FREE_OBJECTID) {
+ if (root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID) {
+ /* btrfs_free_reserved_extent */
+ set_extent_dirty(&root->fs_info->free_space_cache,
+ bytenr, bytenr + num_bytes - 1, GFP_NOFS);
+ return 0;
+ }
pin = 1;
+ }
/* if data pin when any transaction has committed this */
if (ref_generation != trans->transid)
min_alloc_size, empty_size, hint_byte,
search_end, ins, data);
BUG_ON(ret);
- ret = __btrfs_alloc_reserved_extent(trans, root, root_objectid,
- ref_generation, owner,
- owner_offset, ins);
- BUG_ON(ret);
+ if (root_objectid != BTRFS_TREE_LOG_OBJECTID) {
+ ret = __btrfs_alloc_reserved_extent(trans, root, root_objectid,
+ ref_generation, owner,
+ owner_offset, ins);
+ BUG_ON(ret);
+ }
maybe_unlock_mutex(root);
return ret;
}
WARN_ON(root_owner !=
BTRFS_TREE_LOG_OBJECTID);
- ret = btrfs_free_extent(trans, root, bytenr,
- blocksize, root_owner,
- root_gen, 0, 0, 1);
+ ret = btrfs_free_reserved_extent(root,
+ bytenr, blocksize);
BUG_ON(ret);
}
free_extent_buffer(next);
BUG_ON(ret);
}
WARN_ON(root_owner != BTRFS_TREE_LOG_OBJECTID);
- ret = btrfs_free_extent(trans, root, bytenr, blocksize,
- root_owner, root_gen, 0, 0, 1);
+ ret = btrfs_free_reserved_extent(root, bytenr, blocksize);
BUG_ON(ret);
}
free_extent_buffer(path->nodes[*level]);
}
WARN_ON(root_owner != BTRFS_TREE_LOG_OBJECTID);
- ret = btrfs_free_extent(trans, root,
+ ret = btrfs_free_reserved_extent(root,
path->nodes[*level]->start,
- path->nodes[*level]->len,
- root_owner, root_gen, 0, 0, 1);
+ path->nodes[*level]->len);
BUG_ON(ret);
}
free_extent_buffer(path->nodes[*level]);
}
WARN_ON(log->root_key.objectid !=
BTRFS_TREE_LOG_OBJECTID);
- ret = btrfs_free_extent(trans, log,
- next->start, next->len,
- log->root_key.objectid,
- btrfs_header_generation(next),
- 0, 0, 1);
+ ret = btrfs_free_reserved_extent(log, next->start,
+ next->len);
BUG_ON(ret);
}
}