fuse: convert fuse_send_write_pages to use folios
authorJosef Bacik <josef@toxicpanda.com>
Mon, 30 Sep 2024 13:45:10 +0000 (09:45 -0400)
committerMiklos Szeredi <mszeredi@redhat.com>
Fri, 25 Oct 2024 15:05:49 +0000 (17:05 +0200)
Convert this to grab the folio from the fuse_args_pages and use the
appropriate folio related functions.

Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Joanne Koong <joannelkoong@gmail.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c

index 2e7ecbf..be6d077 100644 (file)
@@ -1175,23 +1175,23 @@ static ssize_t fuse_send_write_pages(struct fuse_io_args *ia,
        offset = ap->descs[0].offset;
        count = ia->write.out.size;
        for (i = 0; i < ap->num_pages; i++) {
-               struct page *page = ap->pages[i];
+               struct folio *folio = page_folio(ap->pages[i]);
 
                if (err) {
-                       ClearPageUptodate(page);
+                       folio_clear_uptodate(folio);
                } else {
-                       if (count >= PAGE_SIZE - offset)
-                               count -= PAGE_SIZE - offset;
+                       if (count >= folio_size(folio) - offset)
+                               count -= folio_size(folio) - offset;
                        else {
                                if (short_write)
-                                       ClearPageUptodate(page);
+                                       folio_clear_uptodate(folio);
                                count = 0;
                        }
                        offset = 0;
                }
                if (ia->write.page_locked && (i == ap->num_pages - 1))
-                       unlock_page(page);
-               put_page(page);
+                       folio_unlock(folio);
+               folio_put(folio);
        }
 
        return err;