mbox series

[0/7] btrfs: remove ASSERT()s for folio_order() and folio_test_large()

Message ID cover.1741839616.git.wqu@suse.com (mailing list archive)
Headers show
Series btrfs: remove ASSERT()s for folio_order() and folio_test_large() | expand

Message

Qu Wenruo March 13, 2025, 4:20 a.m. UTC
There are quite some ASSERT()s checking folio_order() or
folio_test_large() on data folios.

They are the blockage for the incoming larger data folios.

This series will remove most of them, with the following exceptions
remaining:

- wait_dev_supers() and write_dev_supers()
  They are folios from block device cache, will not be affected by our
  larger data folios support.

- relocation_one_folio()
  It's about data relocation inode, and we can disable larger data folios
  for such special inode easily.

- btrfs_attach_subpage()
  The folio_test_large() is only for metadata, just change it to be a
  metadata specific check.

- defrage_prepare_one_folio()
  It rejects larger folios gracefully so no need to handle it yet.
  Although we still need some extra work to make defrag to properly
  support larger folios.

- btrfs_end_repair_bio()
  This will be covered by a dedicated series converting the bio layer to
  use folio interfaces other than bvec interfaces.
  Until then the ASSERT() will stay.

The first patch is just a small cleanup for send, exposed during the
removal of ASSERT()s.

Qu Wenruo (7):
  btrfs: send: remove the again label inside put_file_data()
  btrfs: send: prepare put_file_data() for larger data folios
  btrfs: prepare btrfs_page_mkwrite() for larger data folios
  btrfs: prepare prepare_one_folio() for larger data folios
  btrfs: prepare end_bbio_data_write() for larger data folios
  btrfs: subpage: prepare for larger data folios
  btrfs: zlib: prepare copy_data_into_buffer() for larger data folios

 fs/btrfs/extent_io.c |  3 ---
 fs/btrfs/file.c      |  6 +-----
 fs/btrfs/send.c      | 29 +++++++++++++----------------
 fs/btrfs/subpage.c   |  6 ++----
 fs/btrfs/zlib.c      |  2 --
 5 files changed, 16 insertions(+), 30 deletions(-)