Message ID | 20170927160334.29513-13-jack@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 09/27/2017 12:03 PM, Jan Kara wrote: > +unsigned pagevec_lookup_range_nr_tag(struct pagevec *pvec, > + struct address_space *mapping, pgoff_t *index, pgoff_t end, > + int tag, unsigned max_pages) > +{ > + pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, > + min_t(unsigned int, max_pages, PAGEVEC_SIZE), pvec->pages); > + return pagevec_count(pvec); > +} > +EXPORT_SYMBOL(pagevec_lookup_range_tag); The EXPORT_SYMBOL should be pagevec_lookup_range_nr_tag instead of pagevec_lookup_range_tag. Daniel
On Fri 29-09-17 17:45:33, Daniel Jordan wrote: > On 09/27/2017 12:03 PM, Jan Kara wrote: > >+unsigned pagevec_lookup_range_nr_tag(struct pagevec *pvec, > >+ struct address_space *mapping, pgoff_t *index, pgoff_t end, > >+ int tag, unsigned max_pages) > >+{ > >+ pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, > >+ min_t(unsigned int, max_pages, PAGEVEC_SIZE), pvec->pages); > >+ return pagevec_count(pvec); > >+} > >+EXPORT_SYMBOL(pagevec_lookup_range_tag); > > The EXPORT_SYMBOL should be pagevec_lookup_range_nr_tag instead of > pagevec_lookup_range_tag. Ah, good catch. Fixed. Thanks! Honza
diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h index 371edacc10d5..0281b1d3a91b 100644 --- a/include/linux/pagevec.h +++ b/include/linux/pagevec.h @@ -40,6 +40,9 @@ static inline unsigned pagevec_lookup(struct pagevec *pvec, unsigned pagevec_lookup_range_tag(struct pagevec *pvec, struct address_space *mapping, pgoff_t *index, pgoff_t end, int tag, unsigned nr_pages); +unsigned pagevec_lookup_range_nr_tag(struct pagevec *pvec, + struct address_space *mapping, pgoff_t *index, pgoff_t end, + int tag, unsigned max_pages); static inline unsigned pagevec_lookup_tag(struct pagevec *pvec, struct address_space *mapping, pgoff_t *index, int tag, unsigned nr_pages) diff --git a/mm/swap.c b/mm/swap.c index a00065f2a8f2..97186da8e5bd 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -996,6 +996,15 @@ unsigned pagevec_lookup_range_tag(struct pagevec *pvec, } EXPORT_SYMBOL(pagevec_lookup_range_tag); +unsigned pagevec_lookup_range_nr_tag(struct pagevec *pvec, + struct address_space *mapping, pgoff_t *index, pgoff_t end, + int tag, unsigned max_pages) +{ + pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, + min_t(unsigned int, max_pages, PAGEVEC_SIZE), pvec->pages); + return pagevec_count(pvec); +} +EXPORT_SYMBOL(pagevec_lookup_range_tag); /* * Perform any setup for the swap system */
Currently pagevec_lookup_range_tag() takes number of pages to look up but most users don't need this. Create a new function pagevec_lookup_range_nr_tag() that takes maximum number of pages to lookup for Ceph which wants this functionality so that we can drop nr_pages argument from pagevec_lookup_range_tag(). Signed-off-by: Jan Kara <jack@suse.cz> --- include/linux/pagevec.h | 3 +++ mm/swap.c | 9 +++++++++ 2 files changed, 12 insertions(+)