diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1881,6 +1881,8 @@ debug: | |||
1881 | 1881 | ||
1882 | page->inuse++; | 1882 | page->inuse++; |
1883 | page->freelist = get_freepointer(s, object); | 1883 | page->freelist = get_freepointer(s, object); |
1884 | deactivate_slab(s, c); | ||
1885 | c->page = NULL; | ||
1884 | c->node = NUMA_NO_NODE; | 1886 | c->node = NUMA_NO_NODE; |
1885 | goto unlock_out; | 1887 | goto unlock_out; |
1886 | } | 1888 | } |
@@ -2112,7 +2114,7 @@ redo: | |||
2112 | tid = c->tid; | 2114 | tid = c->tid; |
2113 | barrier(); | 2115 | barrier(); |
2114 | 2116 | ||
2115 | if (likely(page == c->page && c->node != NUMA_NO_NODE)) { | 2117 | if (likely(page == c->page)) { |
2116 | set_freepointer(s, object, c->freelist); | 2118 | set_freepointer(s, object, c->freelist); |
2117 | 2119 | ||
2118 | if (unlikely(!this_cpu_cmpxchg_double( | 2120 | if (unlikely(!this_cpu_cmpxchg_double( |