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

btrfs: convert can_finish_ordered_extent() to use a folio

Pass in a folio instead, and use a folio instead of a page.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

authored by

Josef Bacik and committed by
David Sterba
0a577636 7e755aa7

+11 -10
+11 -10
fs/btrfs/ordered-data.c
··· 332 332 } 333 333 334 334 static bool can_finish_ordered_extent(struct btrfs_ordered_extent *ordered, 335 - struct page *page, u64 file_offset, 335 + struct folio *folio, u64 file_offset, 336 336 u64 len, bool uptodate) 337 337 { 338 338 struct btrfs_inode *inode = ordered->inode; ··· 340 340 341 341 lockdep_assert_held(&inode->ordered_tree_lock); 342 342 343 - if (page) { 344 - ASSERT(page->mapping); 345 - ASSERT(page_offset(page) <= file_offset); 346 - ASSERT(file_offset + len <= page_offset(page) + PAGE_SIZE); 343 + if (folio) { 344 + ASSERT(folio->mapping); 345 + ASSERT(folio_pos(folio) <= file_offset); 346 + ASSERT(file_offset + len <= folio_pos(folio) + folio_size(folio)); 347 347 348 348 /* 349 349 * Ordered (Private2) bit indicates whether we still have ··· 351 351 * 352 352 * If there's no such bit, we need to skip to next range. 353 353 */ 354 - if (!btrfs_folio_test_ordered(fs_info, page_folio(page), 355 - file_offset, len)) 354 + if (!btrfs_folio_test_ordered(fs_info, folio, file_offset, len)) 356 355 return false; 357 - btrfs_folio_clear_ordered(fs_info, page_folio(page), file_offset, len); 356 + btrfs_folio_clear_ordered(fs_info, folio, file_offset, len); 358 357 } 359 358 360 359 /* Now we're fine to update the accounting. */ ··· 407 408 trace_btrfs_finish_ordered_extent(inode, file_offset, len, uptodate); 408 409 409 410 spin_lock_irqsave(&inode->ordered_tree_lock, flags); 410 - ret = can_finish_ordered_extent(ordered, page, file_offset, len, uptodate); 411 + ret = can_finish_ordered_extent(ordered, page_folio(page), file_offset, 412 + len, uptodate); 411 413 spin_unlock_irqrestore(&inode->ordered_tree_lock, flags); 412 414 413 415 /* ··· 524 524 ASSERT(end + 1 - cur < U32_MAX); 525 525 len = end + 1 - cur; 526 526 527 - if (can_finish_ordered_extent(entry, page, cur, len, uptodate)) { 527 + if (can_finish_ordered_extent(entry, page_folio(page), cur, len, 528 + uptodate)) { 528 529 spin_unlock_irqrestore(&inode->ordered_tree_lock, flags); 529 530 btrfs_queue_ordered_fn(entry); 530 531 spin_lock_irqsave(&inode->ordered_tree_lock, flags);