Skip to content

Commit 29451dd

Browse files
adam900710kdave
authored andcommitted
btrfs: move large data folios out of experimental features
This feature was introduced in v6.17 under experimental, and we had several small bugs related to or exposed by that: e9e3b22 ("btrfs: fix beyond-EOF write handling") 18de34d ("btrfs: truncate ordered extent when skipping writeback past i_size") Otherwise, the feature has been frequently tested by btrfs developers. The latest fix only arrived in v6.19. After three releases, I think it's time to move this feature out of experimental. And since we're here, also remove the comment about the bitmap size limit, which is no longer relevant in the context. It will soon be outdated for the incoming huge folio support. Reviewed-by: Neal Gompa <neal@gompa.dev> Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
1 parent f433fbd commit 29451dd

3 files changed

Lines changed: 1 addition & 21 deletions

File tree

fs/btrfs/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ config BTRFS_EXPERIMENTAL
106106

107107
- extent tree v2 - complex rework of extent tracking
108108

109-
- large folio and block size (> page size) support
109+
- block size > page size support
110110

111111
- asynchronous checksum generation for data writes
112112

fs/btrfs/btrfs_inode.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -500,12 +500,9 @@ static inline void btrfs_set_inode_mapping_order(struct btrfs_inode *inode)
500500
/* Metadata inode should not reach here. */
501501
ASSERT(is_data_inode(inode));
502502

503-
/* We only allow BITS_PER_LONGS blocks for each bitmap. */
504-
#ifdef CONFIG_BTRFS_EXPERIMENTAL
505503
mapping_set_folio_order_range(inode->vfs_inode.i_mapping,
506504
inode->root->fs_info->block_min_order,
507505
inode->root->fs_info->block_max_order);
508-
#endif
509506
}
510507

511508
void btrfs_calculate_block_csum_folio(struct btrfs_fs_info *fs_info,

fs/btrfs/defrag.c

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -859,23 +859,6 @@ static struct folio *defrag_prepare_one_folio(struct btrfs_inode *inode, pgoff_t
859859
if (IS_ERR(folio))
860860
return folio;
861861

862-
/*
863-
* Since we can defragment files opened read-only, we can encounter
864-
* transparent huge pages here (see CONFIG_READ_ONLY_THP_FOR_FS).
865-
*
866-
* The IO for such large folios is not fully tested, thus return
867-
* an error to reject such folios unless it's an experimental build.
868-
*
869-
* Filesystem transparent huge pages are typically only used for
870-
* executables that explicitly enable them, so this isn't very
871-
* restrictive.
872-
*/
873-
if (!IS_ENABLED(CONFIG_BTRFS_EXPERIMENTAL) && folio_test_large(folio)) {
874-
folio_unlock(folio);
875-
folio_put(folio);
876-
return ERR_PTR(-ETXTBSY);
877-
}
878-
879862
ret = set_folio_extent_mapped(folio);
880863
if (ret < 0) {
881864
folio_unlock(folio);

0 commit comments

Comments
 (0)