Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

udf: Convert udf_adinicb_readpage() to udf_adinicb_read_folio()

Now that all three callers have a folio, convert this function to
take a folio, and use the folio APIs.

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

authored by

Matthew Wilcox (Oracle) and committed by
Jan Kara
d257d924 db675409

+7 -12
+7 -12
fs/udf/inode.c
··· 208 208 return write_cache_pages(mapping, wbc, udf_adinicb_writepage, NULL); 209 209 } 210 210 211 - static void udf_adinicb_readpage(struct page *page) 211 + static void udf_adinicb_read_folio(struct folio *folio) 212 212 { 213 - struct inode *inode = page->mapping->host; 214 - char *kaddr; 213 + struct inode *inode = folio->mapping->host; 215 214 struct udf_inode_info *iinfo = UDF_I(inode); 216 215 loff_t isize = i_size_read(inode); 217 216 218 - kaddr = kmap_local_page(page); 219 - memcpy(kaddr, iinfo->i_data + iinfo->i_lenEAttr, isize); 220 - memset(kaddr + isize, 0, PAGE_SIZE - isize); 221 - flush_dcache_page(page); 222 - SetPageUptodate(page); 223 - kunmap_local(kaddr); 217 + folio_fill_tail(folio, 0, iinfo->i_data + iinfo->i_lenEAttr, isize); 218 + folio_mark_uptodate(folio); 224 219 } 225 220 226 221 static int udf_read_folio(struct file *file, struct folio *folio) ··· 223 228 struct udf_inode_info *iinfo = UDF_I(file_inode(file)); 224 229 225 230 if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { 226 - udf_adinicb_readpage(&folio->page); 231 + udf_adinicb_read_folio(folio); 227 232 folio_unlock(folio); 228 233 return 0; 229 234 } ··· 267 272 return PTR_ERR(folio); 268 273 *pagep = &folio->page; 269 274 if (!folio_test_uptodate(folio)) 270 - udf_adinicb_readpage(&folio->page); 275 + udf_adinicb_read_folio(folio); 271 276 return 0; 272 277 } 273 278 ··· 359 364 return PTR_ERR(folio); 360 365 361 366 if (!folio_test_uptodate(folio)) 362 - udf_adinicb_readpage(&folio->page); 367 + udf_adinicb_read_folio(folio); 363 368 down_write(&iinfo->i_data_sem); 364 369 memset(iinfo->i_data + iinfo->i_lenEAttr, 0x00, 365 370 iinfo->i_lenAlloc);