Btrfs: snapshot progress
[linux-2.6-block.git] / fs / btrfs / extent-tree.c
index 688aa861a9281c09ed807d8845e18f773b7bc759..efc604eea0b00883e015511ac9e7b737ec2d92e8 100644 (file)
@@ -77,6 +77,12 @@ static int lookup_block_ref(struct btrfs_trans_handle *trans, struct btrfs_root
        return 0;
 }
 
+int btrfs_inc_root_ref(struct btrfs_trans_handle *trans,
+                      struct btrfs_root *root)
+{
+       return inc_block_ref(trans, root, root->node->b_blocknr, 1);
+}
+
 int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root,
                  struct buffer_head *buf)
 {
@@ -224,6 +230,7 @@ static int __free_extent(struct btrfs_trans_handle *trans, struct btrfs_root
        path = btrfs_alloc_path();
        BUG_ON(!path);
        btrfs_init_path(path);
+
        ret = btrfs_search_slot(trans, extent_root, &key, path, -1, 1);
        if (ret) {
                printk("failed to find %Lu\n", key.objectid);
@@ -363,8 +370,6 @@ static int find_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root
        if (root->fs_info->last_insert.objectid > search_start)
                search_start = root->fs_info->last_insert.objectid;
 
-       path = btrfs_alloc_path();
-
 check_failed:
        btrfs_init_path(path);
        ins->objectid = search_start;