Make use of new interfaces for loading and inserting preserved pages into a shmem file in bulk. Signed-off-by: Anthony Yznaga <anthony.yznaga@xxxxxxxxxx> --- mm/shmem_pkram.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/mm/shmem_pkram.c b/mm/shmem_pkram.c index 4992b6c3e54e..435488368104 100644 --- a/mm/shmem_pkram.c +++ b/mm/shmem_pkram.c @@ -315,18 +315,29 @@ static inline void pkram_load_report_one_done(void) static int do_load_file_content(struct pkram_stream *ps) { unsigned long index; - struct page *page; - int err = 0; + int i, err; + + err = pkram_prepare_load_pages(ps); + if (err) + return err; do { - page = pkram_load_page(ps, &index, NULL); - if (!page) + err = pkram_load_pages(ps, &index); + if (err) { + if (err == -ENODATA) + err = 0; break; + } - err = shmem_insert_page(ps->mm, ps->mapping->host, index, page); - put_page(page); + err = shmem_insert_pages(ps->mm, ps->mapping->host, index, + ps->pages, ps->nr_pages); + + for (i = 0; i < ps->nr_pages; i++) + put_page(ps->pages[i]); } while (!err); + pkram_finish_load_pages(ps); + return err; } -- 2.13.3