int reada_slot;
        int reada_count;
        int restarted;
+       /* Indicate that extent info needs to be looked up when walking the tree. */
+       int lookup_info;
 };
 
 #define DROP_REFERENCE 1
 static noinline int walk_down_proc(struct btrfs_trans_handle *trans,
                                   struct btrfs_root *root,
                                   struct btrfs_path *path,
-                                  struct walk_control *wc, int lookup_info)
+                                  struct walk_control *wc)
 {
        struct btrfs_fs_info *fs_info = root->fs_info;
        int level = wc->level;
         * when reference count of tree block is 1, it won't increase
         * again. once full backref flag is set, we never clear it.
         */
-       if (lookup_info &&
+       if (wc->lookup_info &&
            ((wc->stage == DROP_REFERENCE && wc->refs[level] != 1) ||
             (wc->stage == UPDATE_BACKREF && !(wc->flags[level] & flag)))) {
                BUG_ON(!path->locks[level]);
 static noinline int do_walk_down(struct btrfs_trans_handle *trans,
                                 struct btrfs_root *root,
                                 struct btrfs_path *path,
-                                struct walk_control *wc, int *lookup_info)
+                                struct walk_control *wc)
 {
        struct btrfs_fs_info *fs_info = root->fs_info;
        u64 bytenr;
         */
        if (wc->stage == UPDATE_BACKREF &&
            generation <= root->root_key.offset) {
-               *lookup_info = 1;
+               wc->lookup_info = 1;
                return 1;
        }
 
                ret = -EIO;
                goto out_unlock;
        }
-       *lookup_info = 0;
+       wc->lookup_info = 0;
 
        if (wc->stage == DROP_REFERENCE) {
                if (wc->refs[level - 1] > 1) {
                        return ret;
                }
                btrfs_tree_lock(next);
-               *lookup_info = 1;
+               wc->lookup_info = 1;
        }
 
        level--;
                        goto out_unlock;
        }
 no_delete:
-       *lookup_info = 1;
+       wc->lookup_info = 1;
        ret = 1;
 
 out_unlock:
                                   struct walk_control *wc)
 {
        int level = wc->level;
-       int lookup_info = 1;
        int ret = 0;
 
+       wc->lookup_info = 1;
        while (level >= 0) {
-               ret = walk_down_proc(trans, root, path, wc, lookup_info);
+               ret = walk_down_proc(trans, root, path, wc);
                if (ret)
                        break;
 
                    btrfs_header_nritems(path->nodes[level]))
                        break;
 
-               ret = do_walk_down(trans, root, path, wc, &lookup_info);
+               ret = do_walk_down(trans, root, path, wc);
                if (ret > 0) {
                        path->slots[level]++;
                        continue;