udf: Convert udf_write_begin() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 17 Apr 2024 15:04:08 +0000 (16:04 +0100)
committerJan Kara <jack@suse.cz>
Tue, 23 Apr 2024 13:36:02 +0000 (15:36 +0200)
Use the folio APIs throughout instead of the deprecated page APIs.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Message-Id: <20240417150416.752929-3-willy@infradead.org>

fs/udf/inode.c

index 2f831a3a91afe38351c5a16bf2e5138fda9e19d1..5146b9d7aba36732e9474e3792fd5a484d9b3cf7 100644 (file)
@@ -254,7 +254,7 @@ static int udf_write_begin(struct file *file, struct address_space *mapping,
                           struct page **pagep, void **fsdata)
 {
        struct udf_inode_info *iinfo = UDF_I(file_inode(file));
-       struct page *page;
+       struct folio *folio;
        int ret;
 
        if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB) {
@@ -266,12 +266,13 @@ static int udf_write_begin(struct file *file, struct address_space *mapping,
        }
        if (WARN_ON_ONCE(pos >= PAGE_SIZE))
                return -EIO;
-       page = grab_cache_page_write_begin(mapping, 0);
-       if (!page)
-               return -ENOMEM;
-       *pagep = page;
-       if (!PageUptodate(page))
-               udf_adinicb_readpage(page);
+       folio = __filemap_get_folio(mapping, 0, FGP_WRITEBEGIN,
+                       mapping_gfp_mask(mapping));
+       if (IS_ERR(folio))
+               return PTR_ERR(folio);
+       *pagep = &folio->page;
+       if (!folio_test_uptodate(folio))
+               udf_adinicb_readpage(&folio->page);
        return 0;
 }