int i;
        int level;
        int ret = 0;
-       int (*process_func)(struct btrfs_trans_handle *,
-                           struct btrfs_root *,
-                           u64, u64, u64, u64, u64, u64);
-
 
        if (btrfs_is_testing(fs_info))
                return 0;
        if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state) && level == 0)
                return 0;
 
-       if (inc)
-               process_func = btrfs_inc_extent_ref;
-       else
-               process_func = btrfs_free_extent;
-
        if (full_backref)
                parent = buf->start;
        else
 
                        num_bytes = btrfs_file_extent_disk_num_bytes(buf, fi);
                        key.offset -= btrfs_file_extent_offset(buf, fi);
-                       ret = process_func(trans, root, bytenr, num_bytes,
-                                          parent, ref_root, key.objectid,
-                                          key.offset);
+                       if (inc)
+                               ret = btrfs_inc_extent_ref(trans, root, bytenr,
+                                               num_bytes, parent, ref_root,
+                                               key.objectid, key.offset);
+                       else
+                               ret = btrfs_free_extent(trans, root, bytenr,
+                                               num_bytes, parent, ref_root,
+                                               key.objectid, key.offset);
                        if (ret)
                                goto fail;
                } else {
                        bytenr = btrfs_node_blockptr(buf, i);
                        num_bytes = fs_info->nodesize;
-                       ret = process_func(trans, root, bytenr, num_bytes,
-                                          parent, ref_root, level - 1, 0);
+                       if (inc)
+                               ret = btrfs_inc_extent_ref(trans, root, bytenr,
+                                               num_bytes, parent, ref_root,
+                                               level - 1, 0);
+                       else
+                               ret = btrfs_free_extent(trans, root, bytenr,
+                                               num_bytes, parent, ref_root,
+                                               level - 1, 0);
                        if (ret)
                                goto fail;
                }