[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <d82abd3fd27f13753a53ab19b7afcf28eca76e57.1444302968.git.sergei@s15v.net>
Date: Thu, 8 Oct 2015 14:31:34 +0300
From: Sergei Zviagintsev <sergei@...v.net>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Daniel Mack <daniel@...que.org>,
David Herrmann <dh.herrmann@...glemail.com>,
Djalal Harouni <tixxdz@...ndz.org>
Cc: linux-kernel@...r.kernel.org, Sergei Zviagintsev <sergei@...v.net>
Subject: [PATCH 05/44] kdbus: Add comment on merging free pool slices
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@...v.net>
---
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists