Re: [PATCH v13 01/12] splice: Fix O_DIRECT file read splice to avoid reversion of ITER_PIPE

From: Matthew Wilcox
Date: Thu Feb 09 2023 - 09:54:21 EST


On Thu, Feb 09, 2023 at 10:29:43AM +0000, David Howells wrote:
> + npages = alloc_pages_bulk_list(GFP_USER, npages, &pages);

Please don't use alloc_pages_bulk_list(). If nobody uses it, it can go
away again soon. Does alloc_pages_bulk_array() work for you? It's
faster.

> + /* Free any pages that didn't get touched at all. */
> + for (; reclaim >= PAGE_SIZE; reclaim -= PAGE_SIZE)
> + __free_page(bv[--npages].bv_page);

If you have that array, you can then use release_pages() to free
them, which will be faster.