defrag.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
root->fs_info->generation);
WARN_ON(1);
}
+ if (buffer_defrag_done(parent))
+ return 0;
+
parent_node = btrfs_buffer_node(parent);
parent_nritems = btrfs_header_nritems(&parent_node->header);
parent_level = btrfs_header_level(&parent_node->header);
*last_ret = search_start;
if (parent_level == 1)
clear_buffer_defrag(tmp_bh);
+ set_buffer_defrag_done(tmp_bh);
brelse(tmp_bh);
}
return err;
enum btrfs_bh_state_bits {
BH_Checked = BH_PrivateStart,
BH_Defrag,
+ BH_DefragDone,
};
BUFFER_FNS(Checked, checked);
BUFFER_FNS(Defrag, defrag);
+BUFFER_FNS(DefragDone, defrag_done);
static inline struct btrfs_node *btrfs_buffer_node(struct buffer_head *bh)
{