]> Pileus Git - ~andy/linux/blobdiff - mm/slub.c
fs: icache RCU free inodes
[~andy/linux] / mm / slub.c
index 981fb730aa04d82ef7b739497beb22d10fe9f98c..a2fe1727ed859de71be8c769e3376b3749f442a4 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1917,17 +1917,6 @@ void kmem_cache_free(struct kmem_cache *s, void *x)
 }
 EXPORT_SYMBOL(kmem_cache_free);
 
-/* Figure out on which slab page the object resides */
-static struct page *get_object_page(const void *x)
-{
-       struct page *page = virt_to_head_page(x);
-
-       if (!PageSlab(page))
-               return NULL;
-
-       return page;
-}
-
 /*
  * Object placement in a slab is made very easy because we always start at
  * offset 0. If we tune the size of the object to the alignment then we can
@@ -2385,35 +2374,6 @@ error:
        return 0;
 }
 
-/*
- * Check if a given pointer is valid
- */
-int kmem_ptr_validate(struct kmem_cache *s, const void *object)
-{
-       struct page *page;
-
-       if (!kern_ptr_validate(object, s->size))
-               return 0;
-
-       page = get_object_page(object);
-
-       if (!page || s != page->slab)
-               /* No slab or wrong slab */
-               return 0;
-
-       if (!check_valid_pointer(s, page, object))
-               return 0;
-
-       /*
-        * We could also check if the object is on the slabs freelist.
-        * But this would be too expensive and it seems that the main
-        * purpose of kmem_ptr_valid() is to check if the object belongs
-        * to a certain slab.
-        */
-       return 1;
-}
-EXPORT_SYMBOL(kmem_ptr_validate);
-
 /*
  * Determine the size of a slab object
  */
@@ -3401,13 +3361,13 @@ static int validate_slab(struct kmem_cache *s, struct page *page,
 
        for_each_free_object(p, s, page->freelist) {
                set_bit(slab_index(p, s, addr), map);
-               if (!check_object(s, page, p, 0))
+               if (!check_object(s, page, p, SLUB_RED_INACTIVE))
                        return 0;
        }
 
        for_each_object(p, s, addr, page->objects)
                if (!test_bit(slab_index(p, s, addr), map))
-                       if (!check_object(s, page, p, 1))
+                       if (!check_object(s, page, p, SLUB_RED_ACTIVE))
                                return 0;
        return 1;
 }