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

ufs: Pass a folio to ufs_new_fragments()

All callers now have a folio, pass it to ufs_new_fragments() instead
of converting back to a page.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

authored by

Matthew Wilcox (Oracle) and committed by
Al Viro
14bcb7bb 24a87a0a

+13 -13
+5 -5
fs/ufs/balloc.c
··· 332 332 333 333 u64 ufs_new_fragments(struct inode *inode, void *p, u64 fragment, 334 334 u64 goal, unsigned count, int *err, 335 - struct page *locked_page) 335 + struct folio *locked_folio) 336 336 { 337 337 struct super_block * sb; 338 338 struct ufs_sb_private_info * uspi; ··· 412 412 result = ufs_alloc_fragments (inode, cgno, goal, count, err); 413 413 if (result) { 414 414 ufs_clear_frags(inode, result + oldcount, 415 - newcount - oldcount, locked_page != NULL); 415 + newcount - oldcount, locked_folio != NULL); 416 416 *err = 0; 417 417 write_seqlock(&UFS_I(inode)->meta_lock); 418 418 ufs_cpu_to_data_ptr(sb, p, result); ··· 436 436 fragment + count); 437 437 read_sequnlock_excl(&UFS_I(inode)->meta_lock); 438 438 ufs_clear_frags(inode, result + oldcount, newcount - oldcount, 439 - locked_page != NULL); 439 + locked_folio != NULL); 440 440 mutex_unlock(&UFS_SB(sb)->s_lock); 441 441 UFSD("EXIT, result %llu\n", (unsigned long long)result); 442 442 return result; ··· 457 457 result = ufs_alloc_fragments (inode, cgno, goal, request, err); 458 458 if (result) { 459 459 ufs_clear_frags(inode, result + oldcount, newcount - oldcount, 460 - locked_page != NULL); 460 + locked_folio != NULL); 461 461 mutex_unlock(&UFS_SB(sb)->s_lock); 462 462 ufs_change_blocknr(inode, fragment - oldcount, oldcount, 463 463 uspi->s_sbbase + tmp, 464 - uspi->s_sbbase + result, locked_page); 464 + uspi->s_sbbase + result, &locked_folio->page); 465 465 *err = 0; 466 466 write_seqlock(&UFS_I(inode)->meta_lock); 467 467 ufs_cpu_to_data_ptr(sb, p, result);
+4 -4
fs/ufs/inode.c
··· 239 239 p = ufs_get_direct_data_ptr(uspi, ufsi, block); 240 240 tmp = ufs_new_fragments(inode, p, lastfrag, ufs_data_ptr_to_cpu(sb, p), 241 241 new_size - (lastfrag & uspi->s_fpbmask), err, 242 - &locked_folio->page); 242 + locked_folio); 243 243 return tmp != 0; 244 244 } 245 245 ··· 250 250 * @new_fragment: number of new allocated fragment(s) 251 251 * @err: we set it if something wrong 252 252 * @new: we set it if we allocate new block 253 - * @locked_page: for ufs_new_fragments() 253 + * @locked_folio: for ufs_new_fragments() 254 254 */ 255 255 static u64 ufs_inode_getfrag(struct inode *inode, unsigned index, 256 256 sector_t new_fragment, int *err, ··· 282 282 goal += uspi->s_fpb; 283 283 } 284 284 tmp = ufs_new_fragments(inode, p, ufs_blknum(new_fragment), 285 - goal, nfrags, err, &locked_folio->page); 285 + goal, nfrags, err, locked_folio); 286 286 287 287 if (!tmp) { 288 288 *err = -ENOSPC; ··· 347 347 else 348 348 goal = bh->b_blocknr + uspi->s_fpb; 349 349 tmp = ufs_new_fragments(inode, p, ufs_blknum(new_fragment), goal, 350 - uspi->s_fpb, err, &locked_folio->page); 350 + uspi->s_fpb, err, locked_folio); 351 351 if (!tmp) 352 352 goto out; 353 353
+4 -4
fs/ufs/ufs.h
··· 88 88 #endif 89 89 90 90 /* balloc.c */ 91 - extern void ufs_free_fragments (struct inode *, u64, unsigned); 92 - extern void ufs_free_blocks (struct inode *, u64, unsigned); 93 - extern u64 ufs_new_fragments(struct inode *, void *, u64, u64, 94 - unsigned, int *, struct page *); 91 + void ufs_free_fragments (struct inode *, u64 fragment, unsigned count); 92 + void ufs_free_blocks (struct inode *, u64 fragment, unsigned count); 93 + u64 ufs_new_fragments(struct inode *, void *, u64 fragment, u64 goal, 94 + unsigned count, int *err, struct folio *); 95 95 96 96 /* cylinder.c */ 97 97 extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);