diff --git a/mm/slub.c b/mm/slub.c index 98452815a066c966b5c41f2511779cdb91f1fd12..ad44734dbf72a75146c5c8d67c8fb3b32c14ecee 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2318,6 +2318,7 @@ static void deactivate_slab(struct kmem_cache *s, struct page *page, c->page = NULL; c->freelist = NULL; + c->tid = next_tid(c->tid); } /* @@ -2451,8 +2452,6 @@ static inline void flush_slab(struct kmem_cache *s, struct kmem_cache_cpu *c) { stat(s, CPUSLAB_FLUSH); deactivate_slab(s, c->page, c->freelist, c); - - c->tid = next_tid(c->tid); } /* @@ -2738,6 +2737,7 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, if (!freelist) { c->page = NULL; + c->tid = next_tid(c->tid); stat(s, DEACTIVATE_BYPASS); goto new_slab; }