-static void dlm_free_pagevec(void **vec, int pages)
-{
- while (pages--)
- free_page((unsigned long)vec[pages]);
- kfree(vec);
-}
-
-static void **dlm_alloc_pagevec(int pages)
-{
- void **vec = kmalloc(pages * sizeof(void *), GFP_KERNEL);
- int i;
-
- if (!vec)
- return NULL;
-
- for (i = 0; i < pages; i++)
- if (!(vec[i] = (void *)__get_free_page(GFP_KERNEL)))
- goto out_free;
-
- mlog(0, "Allocated DLM hash pagevec; %d pages (%lu expected), %lu buckets per page\n",
- pages, DLM_HASH_PAGES, (unsigned long)DLM_BUCKETS_PER_PAGE);
- return vec;
-out_free:
- dlm_free_pagevec(vec, i);
- return NULL;
-}
-