https://bugzilla.sw.ru/show_bug.cgi?id=473324

Signed-off-by: Andrey Vagin <avagin@parallels.com>
---
 mm/slab.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/mm/slab.c b/mm/slab.c
index f15cba8..8471fa2 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2954,12 +2954,15 @@ static int check_ubcs_on_slab(kmem_cache_t *c, struct slab *s,
 		struct user_beancounter *ub)
 {
 	int i, sum = 0;
-	struct user_beancounter **ubcs;
+	struct user_beancounter **ubcs, *ubc;
 
 	ubcs = slab_ubcs(c, s);
 	for (i = 0; i < c->num; i++)
-		if (ubcs[i] == ub)
-			sum++;
+		for (ubc = ubcs[i]; ubc != NULL; ubc = ubc->parent)
+			if (ubc == ub) {
+				sum++;
+				break;
+			}
 
 	return sum;
 }
-- 1.6.6 
