btrfs: remove unused function btrfs_insert_some_items()
authorRobin Dong <sanbai@taobao.com>
Sat, 29 Sep 2012 08:07:46 +0000 (02:07 -0600)
committerChris Mason <chris.mason@fusionio.com>
Tue, 9 Oct 2012 13:15:43 +0000 (09:15 -0400)
The function btrfs_insert_some_items() would not be called by any other functions,
so remove it.

Signed-off-by: Robin Dong <sanbai@taobao.com>
fs/btrfs/ctree.c

index fcc8c21..b334362 100644 (file)
@@ -4401,149 +4401,6 @@ void btrfs_extend_item(struct btrfs_trans_handle *trans,
        }
 }
 
-/*
- * Given a key and some data, insert items into the tree.
- * This does all the path init required, making room in the tree if needed.
- * Returns the number of keys that were inserted.
- */
-int btrfs_insert_some_items(struct btrfs_trans_handle *trans,
-                           struct btrfs_root *root,
-                           struct btrfs_path *path,
-                           struct btrfs_key *cpu_key, u32 *data_size,
-                           int nr)
-{
-       struct extent_buffer *leaf;
-       struct btrfs_item *item;
-       int ret = 0;
-       int slot;
-       int i;
-       u32 nritems;
-       u32 total_data = 0;
-       u32 total_size = 0;
-       unsigned int data_end;
-       struct btrfs_disk_key disk_key;
-       struct btrfs_key found_key;
-       struct btrfs_map_token token;
-
-       btrfs_init_map_token(&token);
-
-       for (i = 0; i < nr; i++) {
-               if (total_size + data_size[i] + sizeof(struct btrfs_item) >
-                   BTRFS_LEAF_DATA_SIZE(root)) {
-                       break;
-                       nr = i;
-               }
-               total_data += data_size[i];
-               total_size += data_size[i] + sizeof(struct btrfs_item);
-       }
-       BUG_ON(nr == 0);
-
-       ret = btrfs_search_slot(trans, root, cpu_key, path, total_size, 1);
-       if (ret == 0)
-               return -EEXIST;
-       if (ret < 0)
-               goto out;
-
-       leaf = path->nodes[0];
-
-       nritems = btrfs_header_nritems(leaf);
-       data_end = leaf_data_end(root, leaf);
-
-       if (btrfs_leaf_free_space(root, leaf) < total_size) {
-               for (i = nr; i >= 0; i--) {
-                       total_data -= data_size[i];
-                       total_size -= data_size[i] + sizeof(struct btrfs_item);
-                       if (total_size < btrfs_leaf_free_space(root, leaf))
-                               break;
-               }
-               nr = i;
-       }
-
-       slot = path->slots[0];
-       BUG_ON(slot < 0);
-
-       if (slot != nritems) {
-               unsigned int old_data = btrfs_item_end_nr(leaf, slot);
-
-               item = btrfs_item_nr(leaf, slot);
-               btrfs_item_key_to_cpu(leaf, &found_key, slot);
-
-               /* figure out how many keys we can insert in here */
-               total_data = data_size[0];
-               for (i = 1; i < nr; i++) {
-                       if (btrfs_comp_cpu_keys(&found_key, cpu_key + i) <= 0)
-                               break;
-                       total_data += data_size[i];
-               }
-               nr = i;
-
-               if (old_data < data_end) {
-                       btrfs_print_leaf(root, leaf);
-                       printk(KERN_CRIT "slot %d old_data %d data_end %d\n",
-                              slot, old_data, data_end);
-                       BUG_ON(1);
-               }
-               /*
-                * item0..itemN ... dataN.offset..dataN.size .. data0.size
-                */
-               /* first correct the data pointers */
-               for (i = slot; i < nritems; i++) {
-                       u32 ioff;
-
-                       item = btrfs_item_nr(leaf, i);
-                       ioff = btrfs_token_item_offset(leaf, item, &token);
-                       btrfs_set_token_item_offset(leaf, item,
-                                                   ioff - total_data, &token);
-               }
-               /* shift the items */
-               memmove_extent_buffer(leaf, btrfs_item_nr_offset(slot + nr),
-                             btrfs_item_nr_offset(slot),
-                             (nritems - slot) * sizeof(struct btrfs_item));
-
-               /* shift the data */
-               memmove_extent_buffer(leaf, btrfs_leaf_data(leaf) +
-                             data_end - total_data, btrfs_leaf_data(leaf) +
-                             data_end, old_data - data_end);
-               data_end = old_data;
-       } else {
-               /*
-                * this sucks but it has to be done, if we are inserting at
-                * the end of the leaf only insert 1 of the items, since we
-                * have no way of knowing whats on the next leaf and we'd have
-                * to drop our current locks to figure it out
-                */
-               nr = 1;
-       }
-
-       /* setup the item for the new data */
-       for (i = 0; i < nr; i++) {
-               btrfs_cpu_key_to_disk(&disk_key, cpu_key + i);
-               btrfs_set_item_key(leaf, &disk_key, slot + i);
-               item = btrfs_item_nr(leaf, slot + i);
-               btrfs_set_token_item_offset(leaf, item,
-                                           data_end - data_size[i], &token);
-               data_end -= data_size[i];
-               btrfs_set_token_item_size(leaf, item, data_size[i], &token);
-       }
-       btrfs_set_header_nritems(leaf, nritems + nr);
-       btrfs_mark_buffer_dirty(leaf);
-
-       ret = 0;
-       if (slot == 0) {
-               btrfs_cpu_key_to_disk(&disk_key, cpu_key);
-               fixup_low_keys(trans, root, path, &disk_key, 1);
-       }
-
-       if (btrfs_leaf_free_space(root, leaf) < 0) {
-               btrfs_print_leaf(root, leaf);
-               BUG();
-       }
-out:
-       if (!ret)
-               ret = nr;
-       return ret;
-}
-
 /*
  * this is a helper for btrfs_insert_empty_items, the main goal here is
  * to save stack depth by doing the bulk of the work in a function