Merge tag 'for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba: "User visible changes: - new block group profiles: RAID1 with 3- and 4- copies - RAID1 in btrfs has always 2 copies, now add support for 3 and 4 - this is an incompat feature (named RAID1C34) - recommended use of RAID1C3 is replacement of RAID6 profile on metadata, this brings a more reliable resiliency against 2 device loss/damage - support for new checksums - per-filesystem, set at mkfs time - fast hash (crc32c successor): xxhash, 64bit digest - strong hashes (both 256bit): sha256 (slower, FIPS), blake2b (faster) - the blake2b module goes via the crypto tree, btrfs.ko has a soft dependency - speed up lseek, don't take inode locks unnecessarily, this can speed up parallel SEEK_CUR/SEEK_SET/SEEK_END by 80% - send: - allow clone operations within the same file - limit maximum number of sent clone references to avoid slow backref walking - error message improvements: device scan prints process name and PID Core changes: - cleanups - remove unique workqueue helpers, used to provide a way to avoid deadlocks in the workqueue code, now done in a simpler way - remove lots of indirect function calls in compression code - extent IO tree code moved out of extent_io.c - cleanup backup superblock handling at mount time - transaction life cycle documentation and cleanups - locking code cleanups, annotations and documentation - add more cold, const, pure function attributes - removal of unused or redundant struct members or variables - new tree-checker sanity tests - try to detect missing INODE_ITEM, cross-reference checks of DIR_ITEM, DIR_INDEX, INODE_REF, and XATTR_* items - remove own bio scheduling code (used to avoid checksum submissions being stuck behind other IO), replaced by cgroup controller-based code to allow better control and avoid priority inversions in cases where the custom and cgroup scheduling disagreed Fixes: - avoid getting stuck during cyclic writebacks - fix trimming of ranges crossing block group boundaries - fix rename exchange on subvolumes, all involved subvolumes need to be recorded in the transaction" * tag 'for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (137 commits) btrfs: drop bdev argument from submit_extent_page btrfs: remove extent_map::bdev btrfs: drop bio_set_dev where not needed btrfs: get bdev directly from fs_devices in submit_extent_page btrfs: record all roots for rename exchange on a subvol Btrfs: fix block group remaining RO forever after error during device replace btrfs: scrub: Don't check free space before marking a block group RO btrfs: change btrfs_fs_devices::rotating to bool btrfs: change btrfs_fs_devices::seeding to bool btrfs: rename btrfs_block_group_cache btrfs: block-group: Reuse the item key from caller of read_one_block_group() btrfs: block-group: Refactor btrfs_read_block_groups() btrfs: document extent buffer locking btrfs: access eb::blocking_writers according to ACCESS_ONCE policies btrfs: set blocking_writers directly, no increment or decrement btrfs: merge blocking_writers branches in btrfs_tree_read_lock btrfs: drop incompat bit for raid1c34 after last block group is gone btrfs: add incompat for raid1 with 3, 4 copies btrfs: add support for 4-copy replication (raid1c4) btrfs: add support for 3-copy replication (raid1c3) ...
Showing
- fs/btrfs/Kconfig 2 additions, 0 deletionsfs/btrfs/Kconfig
- fs/btrfs/async-thread.c 53 additions, 60 deletionsfs/btrfs/async-thread.c
- fs/btrfs/async-thread.h 4 additions, 33 deletionsfs/btrfs/async-thread.h
- fs/btrfs/block-group.c 302 additions, 287 deletionsfs/btrfs/block-group.c
- fs/btrfs/block-group.h 26 additions, 25 deletionsfs/btrfs/block-group.h
- fs/btrfs/btrfs_inode.h 0 additions, 3 deletionsfs/btrfs/btrfs_inode.h
- fs/btrfs/compression.c 198 additions, 71 deletionsfs/btrfs/compression.c
- fs/btrfs/compression.h 7 additions, 39 deletionsfs/btrfs/compression.h
- fs/btrfs/ctree.c 125 additions, 162 deletionsfs/btrfs/ctree.c
- fs/btrfs/ctree.h 26 additions, 25 deletionsfs/btrfs/ctree.h
- fs/btrfs/delalloc-space.c 5 additions, 16 deletionsfs/btrfs/delalloc-space.c
- fs/btrfs/delayed-inode.c 13 additions, 5 deletionsfs/btrfs/delayed-inode.c
- fs/btrfs/dev-replace.c 1 addition, 1 deletionfs/btrfs/dev-replace.c
- fs/btrfs/dev-replace.h 1 addition, 1 deletionfs/btrfs/dev-replace.h
- fs/btrfs/disk-io.c 166 additions, 199 deletionsfs/btrfs/disk-io.c
- fs/btrfs/disk-io.h 2 additions, 2 deletionsfs/btrfs/disk-io.h
- fs/btrfs/export.c 2 additions, 2 deletionsfs/btrfs/export.c
- fs/btrfs/extent-io-tree.h 248 additions, 0 deletionsfs/btrfs/extent-io-tree.h
- fs/btrfs/extent-tree.c 82 additions, 64 deletionsfs/btrfs/extent-tree.c
- fs/btrfs/extent_io.c 59 additions, 61 deletionsfs/btrfs/extent_io.c
Please register or sign in to comment