Re: [f2fs-dev] [PATCH 21/23] nilfs2: Convert nilfs_copy_dirty_pages() to use filemap_get_folios_tag()

2022-09-03 Thread Ryusuke Konishi
On Fri, Sep 2, 2022 at 7:18 AM Vishal Moola (Oracle) wrote:
>
> Convert function to use folios throughout. This is in preparation for
> the removal of find_get_pages_range_tag().
>
> Signed-off-by: Vishal Moola (Oracle) 
> ---
>  fs/nilfs2/page.c | 39 ---
>  1 file changed, 20 insertions(+), 19 deletions(-)

Acked-by: Ryusuke Konishi 

Thanks,
Ryusuke Konishi


___
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel


[f2fs-dev] [PATCH 21/23] nilfs2: Convert nilfs_copy_dirty_pages() to use filemap_get_folios_tag()

2022-09-01 Thread Vishal Moola (Oracle)
Convert function to use folios throughout. This is in preparation for
the removal of find_get_pages_range_tag().

Signed-off-by: Vishal Moola (Oracle) 
---
 fs/nilfs2/page.c | 39 ---
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 3267e96c256c..5c96084e829f 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -240,42 +240,43 @@ static void nilfs_copy_page(struct page *dst, struct page 
*src, int copy_dirty)
 int nilfs_copy_dirty_pages(struct address_space *dmap,
   struct address_space *smap)
 {
-   struct pagevec pvec;
+   struct folio_batch fbatch;
unsigned int i;
pgoff_t index = 0;
int err = 0;
 
-   pagevec_init();
+   folio_batch_init();
 repeat:
-   if (!pagevec_lookup_tag(, smap, , PAGECACHE_TAG_DIRTY))
+   if (!filemap_get_folios_tag(smap, , (pgoff_t)-1,
+   PAGECACHE_TAG_DIRTY, ))
return 0;
 
-   for (i = 0; i < pagevec_count(); i++) {
-   struct page *page = pvec.pages[i], *dpage;
+   for (i = 0; i < folio_batch_count(); i++) {
+   struct folio *folio = fbatch.folios[i], *dfolio;
 
-   lock_page(page);
-   if (unlikely(!PageDirty(page)))
-   NILFS_PAGE_BUG(page, "inconsistent dirty state");
+   folio_lock(folio);
+   if (unlikely(!folio_test_dirty(folio)))
+   NILFS_PAGE_BUG(>page, "inconsistent dirty 
state");
 
-   dpage = grab_cache_page(dmap, page->index);
-   if (unlikely(!dpage)) {
+   dfolio = filemap_grab_folio(dmap, folio->index);
+   if (unlikely(!dfolio)) {
/* No empty page is added to the page cache */
err = -ENOMEM;
-   unlock_page(page);
+   folio_unlock(folio);
break;
}
-   if (unlikely(!page_has_buffers(page)))
-   NILFS_PAGE_BUG(page,
+   if (unlikely(!folio_buffers(folio)))
+   NILFS_PAGE_BUG(>page,
   "found empty page in dat page cache");
 
-   nilfs_copy_page(dpage, page, 1);
-   __set_page_dirty_nobuffers(dpage);
+   nilfs_copy_page(>page, >page, 1);
+   filemap_dirty_folio(folio_mapping(dfolio), dfolio);
 
-   unlock_page(dpage);
-   put_page(dpage);
-   unlock_page(page);
+   folio_unlock(dfolio);
+   folio_put(dfolio);
+   folio_unlock(folio);
}
-   pagevec_release();
+   folio_batch_release();
cond_resched();
 
if (likely(!err))
-- 
2.36.1



___
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel