Merge tag 'for-6.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba: "User visible changes: - fall back to buffered write if direct io is done on a file that requires checksums - this avoids a problem with checksum mismatch errors, observed e.g. on virtual images when writes to pages under writeback cause the checksum mismatch reports - this may lead to some performance degradation but currently the recommended setup for VM images is to use the NOCOW file attribute that also disables checksums - fast/realtime zstd levels -15 to -1 - supported by mount options (compress=zstd:-5) and defrag ioctl - improved speed, reduced compression ratio, check the commit for sample measurements - defrag ioctl extended to accept negative compression levels - subpage mode - remove warning when subpage mode is used, the feature is now reasonably complete and tested - in debug mode allow to create 2K b-tree nodes to allow testing subpage on x86_64 with 4K pages too Performance improvements: - in send, better file path caching improves runtime (on sample load by -30%) - on s390x with hardware zlib support prepare the input buffer in a better way to get the best results from the acceleration - minor speed improvement in encoded read, avoid memory allocation in synchronous mode Core: - enable stable writes on inodes, replacing manually waiting for writeback and allowing to skip that on inodes without checksums - add last checks and warnings for out-of-band dirty writes to pages, requiring a fixup ("fixup worker"), this should not be necessary since 5.8 where get_user_page() and pin_user_pages*() prevent this - long history behind that, we'll be happy to remove the whole infrastructure in the near future - more folio API conversions and preparations for large folio support - subpage cleanups and refactoring, split handling of data and metadata to allow future support for large folios - readpage works as block-by-block, no change for normal mode, this is preparation for future subpage updates - block group refcount fixes and hardening - delayed iput fixes - in zoned mode, fix zone activation on filesystem with missing devices Cleanups: - inode parameter cleanups - path auto-freeing updates - code flow simplifications in send - redundant parameter cleanups" * tag 'for-6.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (164 commits) btrfs: zoned: fix zone finishing with missing devices btrfs: zoned: fix zone activation with missing devices btrfs: remove end_no_trans label from btrfs_log_inode_parent() btrfs: simplify condition for logging new dentries at btrfs_log_inode_parent() btrfs: remove redundant else statement from btrfs_log_inode_parent() btrfs: use memcmp_extent_buffer() at replay_one_extent() btrfs: update outdated comment for overwrite_item() btrfs: use variables to store extent buffer and slot at overwrite_item() btrfs: avoid unnecessary memory allocation and copy at overwrite_item() btrfs: don't clobber ret in btrfs_validate_super() btrfs: prepare btrfs_page_mkwrite() for large folios btrfs: prepare extent_io.c for future large folio support btrfs: prepare btrfs_launcher_folio() for large folios support btrfs: replace PAGE_SIZE with folio_size for subpage.[ch] btrfs: add a size parameter to btrfs_alloc_subpage() btrfs: subpage: make btrfs_is_subpage() check against a folio btrfs: add extra warning if delayed iput is added when it's not allowed btrfs: avoid redundant path slot assignment in btrfs_search_forward() btrfs: remove unnecessary btrfs_key local variable in btrfs_search_forward() btrfs: simplify the return value handling in search_ioctl() ...
No related branches found
No related tags found
Showing
- fs/btrfs/accessors.h 1 addition, 0 deletionsfs/btrfs/accessors.h
- fs/btrfs/acl.h 2 additions, 0 deletionsfs/btrfs/acl.h
- fs/btrfs/async-thread.c 5 additions, 6 deletionsfs/btrfs/async-thread.c
- fs/btrfs/backref.c 2 additions, 2 deletionsfs/btrfs/backref.c
- fs/btrfs/bio.c 15 additions, 23 deletionsfs/btrfs/bio.c
- fs/btrfs/block-group.c 95 additions, 60 deletionsfs/btrfs/block-group.c
- fs/btrfs/btrfs_inode.h 13 additions, 4 deletionsfs/btrfs/btrfs_inode.h
- fs/btrfs/compression.c 20 additions, 11 deletionsfs/btrfs/compression.c
- fs/btrfs/compression.h 9 additions, 17 deletionsfs/btrfs/compression.h
- fs/btrfs/ctree.c 7 additions, 11 deletionsfs/btrfs/ctree.c
- fs/btrfs/ctree.h 1 addition, 1 deletionfs/btrfs/ctree.h
- fs/btrfs/defrag.c 46 additions, 32 deletionsfs/btrfs/defrag.c
- fs/btrfs/defrag.h 2 additions, 2 deletionsfs/btrfs/defrag.h
- fs/btrfs/delayed-inode.c 49 additions, 52 deletionsfs/btrfs/delayed-inode.c
- fs/btrfs/delayed-inode.h 1 addition, 1 deletionfs/btrfs/delayed-inode.h
- fs/btrfs/delayed-ref.h 2 additions, 0 deletionsfs/btrfs/delayed-ref.h
- fs/btrfs/dev-replace.c 12 additions, 21 deletionsfs/btrfs/dev-replace.c
- fs/btrfs/dir-item.c 9 additions, 15 deletionsfs/btrfs/dir-item.c
- fs/btrfs/dir-item.h 1 addition, 0 deletionsfs/btrfs/dir-item.h
- fs/btrfs/direct-io.c 18 additions, 1 deletionfs/btrfs/direct-io.c
Loading
Please register or sign in to comment