get_zeroed_page does alloc_page and returns page_address of the result;
subsequent virt_to_page will recover the page, but since the caller
needs both page and its page_address() anyway, why bother going through
that wrapper at all?
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
        for (i = 0; i < LOGPAGES;) {
                char *buffer;
                uint offset;
-               struct page *page;
+               struct page *page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
-               buffer = (char *) get_zeroed_page(GFP_KERNEL);
-               if (buffer == NULL)
+               if (!page)
                        goto error;
-               page = virt_to_page(buffer);
+               buffer = page_address(page);
                for (offset = 0; offset < PAGE_SIZE; offset += LOGPSIZE) {
                        lbuf = kmalloc(sizeof(struct lbuf), GFP_KERNEL);
                        if (lbuf == NULL) {
                                if (offset == 0)
-                                       free_page((unsigned long) buffer);
+                                       __free_page(page);
                                goto error;
                        }
                        if (offset) /* we already have one reference */