From 077d32d3950fbafc8017a6005d5eb2c2b24ce35e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 7 Apr 2008 20:12:46 -0700 Subject: [PATCH] kclient: don't use release_pages; it isn't exported to modules --- src/kernel/addr.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/kernel/addr.c b/src/kernel/addr.c index 7f08bd7d64b9a..afc02756f17d7 100644 --- a/src/kernel/addr.c +++ b/src/kernel/addr.c @@ -143,6 +143,23 @@ static int ceph_writepage(struct page *page, struct writeback_control *wbc) return err; } + +/* + * lame release_pages helper. release_pages() isn't exported to + * modules. + */ +void ceph_release_pages(struct page **pages, int num) +{ + struct pagevec pvec; + int i; + pagevec_init(&pvec, 0); + for (i = 0; i < num; i++) { + if (pagevec_add(&pvec, pages[i]) == 0) + pagevec_release(&pvec); + } + pagevec_release(&pvec); +} + /* * ceph_writepages: * do write jobs for several pages @@ -346,7 +363,7 @@ retry: if (pages) { /* hmm, pagevec_release also does lru_add_drain()...? */ dout(50, "release_pages on %d\n", locked_pages); - release_pages(pages, locked_pages, 0); /* cold? */ + ceph_release_pages(pages, locked_pages); } dout(50, "pagevec_release on %d pages\n", (int)pvec.nr); pagevec_release(&pvec); -- 2.39.5