Glauber Costa Messages: 916 Registered: October 2011
Senior Member
CFLGS_OFF_SLAB is not a valid flag to be passed to cache creation.
If we are duplicating a cache - support added in a future patch -
we will rely on the flags it has stored in itself. That may include
CFLGS_OFF_SLAB.
So it is better to clean this flag at cache creation.
diff --git a/mm/slab.c b/mm/slab.c
index 2d5fe28..c30a61c 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2201,6 +2201,12 @@ int __kmem_cache_create(struct kmem_cache *cachep)
BUG_ON(flags & SLAB_POISON);
#endif
/*
+ * Passing this flag at creation time is invalid, but if we're
+ * duplicating a slab, it may happen.
+ */
+ flags &= ~CFLGS_OFF_SLAB;
+
+ /*
* Always checks flags, a caller might be expecting debug support which
* isn't available.
*/
--
1.7.10.2