{
        struct btrfs_fs_info *fs_info = root->fs_info;
        struct extent_buffer *leaf;
-       u32 last_off;
-       u32 dsize = 0;
        int ret = 0;
        int wret;
-       int i;
        u32 nritems;
 
        leaf = path->nodes[0];
-       last_off = btrfs_item_offset(leaf, slot + nr - 1);
-
-       for (i = 0; i < nr; i++)
-               dsize += btrfs_item_size(leaf, slot + i);
-
        nritems = btrfs_header_nritems(leaf);
 
        if (slot + nr != nritems) {
-               int data_end = leaf_data_end(leaf);
+               const u32 last_off = btrfs_item_offset(leaf, slot + nr - 1);
+               const int data_end = leaf_data_end(leaf);
                struct btrfs_map_token token;
+               u32 dsize = 0;
+               int i;
+
+               for (i = 0; i < nr; i++)
+                       dsize += btrfs_item_size(leaf, slot + i);
 
                memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET +
                              data_end + dsize,