Procházet zdrojové kódy

slub: Add lock release annotation

The unfreeze_slab() releases page's PG_locked bit but was missing
proper annotation. The deactivate_slab() needs to be marked also
since it calls unfreeze_slab() without grabbing the lock.

Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Namhyung Kim před 14 roky
rodič
revize
3478973ded
1 změnil soubory, kde provedl 2 přidání a 0 odebrání
  1. 2 0
      mm/slub.c

+ 2 - 0
mm/slub.c

@@ -1446,6 +1446,7 @@ static struct page *get_partial(struct kmem_cache *s, gfp_t flags, int node)
  * On exit the slab lock will have been dropped.
  * On exit the slab lock will have been dropped.
  */
  */
 static void unfreeze_slab(struct kmem_cache *s, struct page *page, int tail)
 static void unfreeze_slab(struct kmem_cache *s, struct page *page, int tail)
+	__releases(bitlock)
 {
 {
 	struct kmem_cache_node *n = get_node(s, page_to_nid(page));
 	struct kmem_cache_node *n = get_node(s, page_to_nid(page));
 
 
@@ -1488,6 +1489,7 @@ static void unfreeze_slab(struct kmem_cache *s, struct page *page, int tail)
  * Remove the cpu slab
  * Remove the cpu slab
  */
  */
 static void deactivate_slab(struct kmem_cache *s, struct kmem_cache_cpu *c)
 static void deactivate_slab(struct kmem_cache *s, struct kmem_cache_cpu *c)
+	__releases(bitlock)
 {
 {
 	struct page *page = c->page;
 	struct page *page = c->page;
 	int tail = 1;
 	int tail = 1;