nilfs2: convert nilfs_readdir to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 27 Nov 2023 14:30:29 +0000 (23:30 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 11 Dec 2023 01:21:47 +0000 (17:21 -0800)
Use the new folio APIs to remove calls to compound_head().

Link: https://lkml.kernel.org/r/20231127143036.2425-11-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 5c9ca3f0d7f4776859b442273b8cfd8a95ce9250..c7b046589877d69058987c7531561967660767f4 100644 (file)
@@ -284,9 +284,9 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
        for ( ; n < npages; n++, offset = 0) {
                char *kaddr, *limit;
                struct nilfs_dir_entry *de;
-               struct page *page;
+               struct folio *folio;
 
-               kaddr = nilfs_get_page(inode, n, &page);
+               kaddr = nilfs_get_folio(inode, n, &folio);
                if (IS_ERR(kaddr)) {
                        nilfs_error(sb, "bad page in #%lu", inode->i_ino);
                        ctx->pos += PAGE_SIZE - offset;
@@ -298,7 +298,7 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
                for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) {
                        if (de->rec_len == 0) {
                                nilfs_error(sb, "zero-length directory entry");
-                               unmap_and_put_page(page, kaddr);
+                               folio_release_kmap(folio, kaddr);
                                return -EIO;
                        }
                        if (de->inode) {
@@ -311,13 +311,13 @@ static int nilfs_readdir(struct file *file, struct dir_context *ctx)
 
                                if (!dir_emit(ctx, de->name, de->name_len,
                                                le64_to_cpu(de->inode), t)) {
-                                       unmap_and_put_page(page, kaddr);
+                                       folio_release_kmap(folio, kaddr);
                                        return 0;
                                }
                        }
                        ctx->pos += nilfs_rec_len_from_disk(de->rec_len);
                }
-               unmap_and_put_page(page, kaddr);
+               folio_release_kmap(folio, kaddr);
        }
        return 0;
 }