如何在linux内核中销毁一个基数树

时间:2015-12-16 02:05:29

标签: linux linux-kernel radix-tree

我正在尝试使用基数树来维护驱动程序的一个内部数据。那么破坏整棵树的正确方法是什么?

一种想法是使用在1

中提到的方法遍历树

对于每个节点,释放该项并从树中删除其密钥。

另一个问题是,radix_tree_for_each_slot()是否可以安全地使用循环内的删除项?是否会删除触发内部收缩并导致迭代失败?

1 个答案:

答案 0 :(得分:2)

查看cgwb_bdi_unregister

它似乎正在做你需要的东西 - 它使用radix_tree_for_each_slot()迭代基数树,同时这样做radix_tree_delete(来自cgwb_kill)。

所以如果你保持正确的同步,我想没有什么可以爆发。