mirror of https://gitee.com/openkylin/linux.git
jfs: microoptimize get_zeroed_page / virt_to_page
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>
This commit is contained in:
parent
222e4adec5
commit
76e8d7cb71
|
@ -1835,17 +1835,16 @@ static int lbmLogInit(struct jfs_log * log)
|
|||
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 */
|
||||
|
|
Loading…
Reference in New Issue