]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: don't use release_pages; it isn't exported to modules
authorSage Weil <sage@newdream.net>
Tue, 8 Apr 2008 03:12:46 +0000 (20:12 -0700)
committerSage Weil <sage@newdream.net>
Tue, 8 Apr 2008 03:12:46 +0000 (20:12 -0700)
src/kernel/addr.c

index 7f08bd7d64b9a07bc5acc270b63994bdf3f2b68c..afc02756f17d70a97125ce55578af46215b7fdcb 100644 (file)
@@ -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);