struct extent_buffer *b;
        int slot;
        int ret;
-       int err;
        int level;
        int lowest_unlock = 1;
        /* everything at write_lock_level or lower must be write locked */
 
        while (b) {
                int dec = 0;
+               int ret2;
 
                level = btrfs_header_level(b);
 
                        }
 
                        if (last_level)
-                               err = btrfs_cow_block(trans, root, b, NULL, 0,
-                                                     &b,
-                                                     BTRFS_NESTING_COW);
+                               ret2 = btrfs_cow_block(trans, root, b, NULL, 0,
+                                                      &b, BTRFS_NESTING_COW);
                        else
-                               err = btrfs_cow_block(trans, root, b,
-                                                     p->nodes[level + 1],
-                                                     p->slots[level + 1], &b,
-                                                     BTRFS_NESTING_COW);
-                       if (err) {
-                               ret = err;
+                               ret2 = btrfs_cow_block(trans, root, b,
+                                                      p->nodes[level + 1],
+                                                      p->slots[level + 1], &b,
+                                                      BTRFS_NESTING_COW);
+                       if (ret2) {
+                               ret = ret2;
                                goto done;
                        }
                }
                        slot--;
                }
                p->slots[level] = slot;
-               err = setup_nodes_for_search(trans, root, p, b, level, ins_len,
-                                            &write_lock_level);
-               if (err == -EAGAIN)
+               ret2 = setup_nodes_for_search(trans, root, p, b, level, ins_len,
+                                             &write_lock_level);
+               if (ret2 == -EAGAIN)
                        goto again;
-               if (err) {
-                       ret = err;
+               if (ret2) {
+                       ret = ret2;
                        goto done;
                }
                b = p->nodes[level];
                        goto done;
                }
 
-               err = read_block_for_search(root, p, &b, slot, key);
-               if (err == -EAGAIN && !p->nowait)
+               ret2 = read_block_for_search(root, p, &b, slot, key);
+               if (ret2 == -EAGAIN && !p->nowait)
                        goto again;
-               if (err) {
-                       ret = err;
+               if (ret2) {
+                       ret = ret2;
                        goto done;
                }