diff options
author | Qu Wenruo <wqu@suse.com> | 2025-03-17 17:40:51 +1030 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2025-05-15 14:30:42 +0200 |
commit | 3a8f948633a673204066ee4c7adf5314dee7a4c1 (patch) | |
tree | b002d28310b46c38cf821400067f319003e415fa | |
parent | c08d45de63f64e7de53b4b64b23b15b4e452f06f (diff) |
btrfs: subpage: prepare for large data folios
The subpage handling code has two locations not supporting large folios:
- btrfs_attach_subpage()
Which is doing a metadata specific ASSERT() check.
But for the future large data folios support, that check is too
generic. Since it's metadata specific, only check the ASSERT() for
metadata.
- btrfs_subpage_assert()
Just remove the "ASSERT(folio_order(folio) == 0)" check.
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/subpage.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/btrfs/subpage.c b/fs/btrfs/subpage.c index c0a0b8b063d0..d4f019233493 100644 --- a/fs/btrfs/subpage.c +++ b/fs/btrfs/subpage.c @@ -69,7 +69,8 @@ int btrfs_attach_subpage(const struct btrfs_fs_info *fs_info, struct btrfs_subpage *subpage; /* For metadata we don't support large folio yet. */ - ASSERT(!folio_test_large(folio)); + if (type == BTRFS_SUBPAGE_METADATA) + ASSERT(!folio_test_large(folio)); /* * We have cases like a dummy extent buffer page, which is not mapped @@ -181,9 +182,6 @@ void btrfs_folio_dec_eb_refs(const struct btrfs_fs_info *fs_info, struct folio * static void btrfs_subpage_assert(const struct btrfs_fs_info *fs_info, struct folio *folio, u64 start, u32 len) { - /* For subpage support, the folio must be single page. */ - ASSERT(folio_order(folio) == 0); - /* Basic checks */ ASSERT(folio_test_private(folio) && folio_get_private(folio)); ASSERT(IS_ALIGNED(start, fs_info->sectorsize) && |