[PATCH 05/44] kdbus: Add comment on merging free pool slices
From: Sergei Zviagintsev
Date: Thu Oct 08 2015 - 07:32:45 EST
Add comment on why we remove the same slice from free slices tree and
then add it back again when merging the slice to be released with
previous free slice.
Signed-off-by: Sergei Zviagintsev <sergei@xxxxxxxx>
---
ipc/kdbus/pool.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/ipc/kdbus/pool.c b/ipc/kdbus/pool.c
index 84afe96fbc22..c26ef963d8d1 100644
--- a/ipc/kdbus/pool.c
+++ b/ipc/kdbus/pool.c
@@ -304,6 +304,12 @@ static void __kdbus_pool_slice_release(struct kdbus_pool_slice *slice)
s = list_entry(slice->entry.prev,
struct kdbus_pool_slice, entry);
if (s->free) {
+ /*
+ * As size of slice increases after merge and free
+ * slices tree is ordered by slice size, we have to
+ * remove the slice from free slices tree and then add
+ * it again to keep the tree balanced.
+ */
rb_erase(&s->rb_node, &pool->slices_free);
list_del(&slice->entry);
s->size += slice->size;
--
1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/