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

Configure Feed

Select the types of activity you want to include in your feed.

nilfs2: convert nilfs_recovery_copy_block() to take a folio

Use memcpy_to_folio() instead of open-coding it, and use offset_in_folio()
in case anybody wants to use nilfs2 on a device with large blocks.

[konishi.ryusuke@gmail.com: added label name change]
Link: https://lkml.kernel.org/r/20241002150036.1339475-4-willy@infradead.org
Link: https://lkml.kernel.org/r/20241024092602.13395-12-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>

authored by

Matthew Wilcox (Oracle) and committed by
Andrew Morton
b18d78de c1d73eb8

+7 -10
+7 -10
fs/nilfs2/recovery.c
··· 481 481 482 482 static int nilfs_recovery_copy_block(struct the_nilfs *nilfs, 483 483 struct nilfs_recovery_block *rb, 484 - loff_t pos, struct page *page) 484 + loff_t pos, struct folio *folio) 485 485 { 486 486 struct buffer_head *bh_org; 487 - size_t from = pos & ~PAGE_MASK; 488 - void *kaddr; 487 + size_t from = offset_in_folio(folio, pos); 489 488 490 489 bh_org = __bread(nilfs->ns_bdev, rb->blocknr, nilfs->ns_blocksize); 491 490 if (unlikely(!bh_org)) 492 491 return -EIO; 493 492 494 - kaddr = kmap_local_page(page); 495 - memcpy(kaddr + from, bh_org->b_data, bh_org->b_size); 496 - kunmap_local(kaddr); 493 + memcpy_to_folio(folio, from, bh_org->b_data, bh_org->b_size); 497 494 brelse(bh_org); 498 495 return 0; 499 496 } ··· 528 531 goto failed_inode; 529 532 } 530 533 531 - err = nilfs_recovery_copy_block(nilfs, rb, pos, &folio->page); 534 + err = nilfs_recovery_copy_block(nilfs, rb, pos, folio); 532 535 if (unlikely(err)) 533 - goto failed_page; 536 + goto failed_folio; 534 537 535 538 err = nilfs_set_file_dirty(inode, 1); 536 539 if (unlikely(err)) 537 - goto failed_page; 540 + goto failed_folio; 538 541 539 542 block_write_end(NULL, inode->i_mapping, pos, blocksize, 540 543 blocksize, folio, NULL); ··· 545 548 (*nr_salvaged_blocks)++; 546 549 goto next; 547 550 548 - failed_page: 551 + failed_folio: 549 552 folio_unlock(folio); 550 553 folio_put(folio); 551 554