nilfs2: convert nilfs_empty_dir() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 27 Nov 2023 14:30:33 +0000 (23:30 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 11 Dec 2023 01:21:48 +0000 (17:21 -0800)
Remove three calls to compound_head() by using the folio API.

Link: https://lkml.kernel.org/r/20231127143036.2425-15-konishi.ryusuke@gmail.com
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/nilfs2/dir.c

index 8d8c42e341483872af89854bf3ded99493d3b9c5..919936d9ec272e3870297c40872878b3867421d9 100644 (file)
@@ -203,17 +203,6 @@ fail:
        return ERR_PTR(-EIO);
 }
 
-static void *nilfs_get_page(struct inode *dir, unsigned long n,
-               struct page **pagep)
-{
-       struct folio *folio;
-       void *kaddr = nilfs_get_folio(dir, n, &folio);
-
-       if (!IS_ERR(kaddr))
-               *pagep = &folio->page;
-       return kaddr;
-}
-
 /*
  * NOTE! unlike strncmp, nilfs_match returns 1 for success, 0 for failure.
  *
@@ -611,14 +600,14 @@ fail:
  */
 int nilfs_empty_dir(struct inode *inode)
 {
-       struct page *page = NULL;
+       struct folio *folio = NULL;
        char *kaddr;
        unsigned long i, npages = dir_pages(inode);
 
        for (i = 0; i < npages; i++) {
                struct nilfs_dir_entry *de;
 
-               kaddr = nilfs_get_page(inode, i, &page);
+               kaddr = nilfs_get_folio(inode, i, &folio);
                if (IS_ERR(kaddr))
                        continue;
 
@@ -647,12 +636,12 @@ int nilfs_empty_dir(struct inode *inode)
                        }
                        de = nilfs_next_entry(de);
                }
-               unmap_and_put_page(page, kaddr);
+               folio_release_kmap(folio, kaddr);
        }
        return 1;
 
 not_empty:
-       unmap_and_put_page(page, kaddr);
+       folio_release_kmap(folio, kaddr);
        return 0;
 }