>>> @@ -3362,17 +3359,12 @@ static void free_block(struct kmem_cache *cachep, 
>>> void **objpp, int nr_objects,
>>>                    int node)
>>>  {
>>>     int i;
>>> -   struct kmem_cache_node *n;
>>> +   struct kmem_cache_node *n = cachep->node[node];
>>>
>>>     for (i = 0; i < nr_objects; i++) {
>>> -           void *objp;
>>> -           struct page *page;
>>> -
>>> -           clear_obj_pfmemalloc(&objpp[i]);
>>> -           objp = objpp[i];
>>> +           void *objp = clear_obj_pfmemalloc(&objpp[i]);
>>> +           struct page *page = virt_to_head_page(objp);
>>>
>>> -           page = virt_to_head_page(objp);
>>> -           n = cachep->node[node];
>>>             list_del(&page->lru);
>>>             check_spinlock_acquired_node(cachep, node);
>>>             slab_put_obj(cachep, page, objp, node);
>>
>> I think this unnecessarily obfuscates the code.

> It takes the lookup out of the loop. What does the obfuscation?

Taking the lookup of n out was the original cleanup patch; that part is
not my doing.

I changed clear_obj_pfmemalloc to return the modified pointer.
(As well as storing it back in version 1 which you quoted, instead of
storing it back in version 2.)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to