Commit a1b547f
committed
Merge tag 'for-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
"The highlights are new logic behind background block group reclaim,
automatic removal of qgroup after removing a subvolume and new
'rescue=' mount options.
The rest is optimizations, cleanups and refactoring.
User visible features:
- dynamic block group reclaim:
- tunable framework to avoid situations where eager data
allocations prevent creating new metadata chunks due to lack of
unallocated space
- reuse sysfs knob bg_reclaim_threshold (otherwise used only in
zoned mode) for a fixed value threshold
- new on/off sysfs knob "dynamic_reclaim" calculating the value
based on heuristics, aiming to keep spare working space for
relocating chunks but not to needlessly relocate partially
utilized block groups or reclaim newly allocated ones
- stats are exported in sysfs per block group type, files
"reclaim_*"
- this may increase IO load at unexpected times but the corner
case of no allocatable block groups is known to be worse
- automatically remove qgroup of deleted subvolumes:
- adjust qgroup removal conditions, make sure all related
subvolume data are already removed, or return EBUSY, also take
into account setting of sysfs drop_subtree_threshold
- also works in squota mode
- mount option updates: new modes of 'rescue=' that allow to mount
images (read-only) that could have been partially converted by user
space tools
- ignoremetacsums - invalid metadata checksums are ignored
- ignoresuperflags - super block flags that track conversion in
progress (like UUID or checksums)
Core:
- size of struct btrfs_inode is now below 1024 (on a release config),
improved memory packing and other secondary effects
- switch tracking of open inodes from rb-tree to xarray, minor
performance improvement
- reduce number of empty transaction commits when there are no dirty
data/metadata
- memory allocation optimizations (reduced numbers, reordering out of
critical sections)
- extent map structure optimizations and refactoring, more sanity
checks
- more subpage in zoned mode preparations or fixes
- general snapshot code cleanups, improvements and documentation
- tree-checker updates: more file extent ram_bytes fixes, continued
- raid-stripe-tree update (not backward compatible):
- remove extent encoding field from the structure, can be inferred
from other information
- requires btrfs-progs 6.9.1 or newer
- cleanups and refactoring
- error message updates
- error handling improvements
- return type and parameter cleanups and improvements"
* tag 'for-6.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (152 commits)
btrfs: fix extent map use-after-free when adding pages to compressed bio
btrfs: fix bitmap leak when loading free space cache on duplicate entry
btrfs: remove the BUG_ON() inside extent_range_clear_dirty_for_io()
btrfs: move extent_range_clear_dirty_for_io() into inode.c
btrfs: enhance compression error messages
btrfs: fix data race when accessing the last_trans field of a root
btrfs: rename the extra_gfp parameter of btrfs_alloc_page_array()
btrfs: remove the extra_gfp parameter from btrfs_alloc_folio_array()
btrfs: introduce new "rescue=ignoresuperflags" mount option
btrfs: introduce new "rescue=ignoremetacsums" mount option
btrfs: output the unrecognized super block flags as hex
btrfs: remove unused Opt enums
btrfs: tree-checker: add extra ram_bytes and disk_num_bytes check
btrfs: fix the ram_bytes assignment for truncated ordered extents
btrfs: make validate_extent_map() catch ram_bytes mismatch
btrfs: ignore incorrect btrfs_file_extent_item::ram_bytes
btrfs: cleanup the bytenr usage inside btrfs_extent_item_to_extent_map()
btrfs: fix typo in error message in btrfs_validate_super()
btrfs: move the direct IO code into its own file
btrfs: pass a btrfs_inode to btrfs_set_prop()
...93 files changed
Lines changed: 5175 additions & 3905 deletions
File tree
- fs/btrfs
- tests
- include
- trace/events
- uapi/linux
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
| 51 | + | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
318 | | - | |
319 | 318 | | |
320 | 319 | | |
321 | | - | |
322 | | - | |
323 | 320 | | |
324 | 321 | | |
325 | 322 | | |
| |||
353 | 350 | | |
354 | 351 | | |
355 | 352 | | |
356 | | - | |
| 353 | + | |
357 | 354 | | |
358 | 355 | | |
359 | 356 | | |
| |||
446 | 443 | | |
447 | 444 | | |
448 | 445 | | |
449 | | - | |
| 446 | + | |
450 | 447 | | |
451 | 448 | | |
452 | 449 | | |
| |||
512 | 509 | | |
513 | 510 | | |
514 | 511 | | |
515 | | - | |
| 512 | + | |
516 | 513 | | |
517 | 514 | | |
518 | 515 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
732 | 732 | | |
733 | 733 | | |
734 | 734 | | |
735 | | - | |
| 735 | + | |
736 | 736 | | |
737 | 737 | | |
738 | 738 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1022 | 1022 | | |
1023 | 1023 | | |
1024 | 1024 | | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
1025 | 1032 | | |
1026 | 1033 | | |
1027 | 1034 | | |
| |||
1757 | 1764 | | |
1758 | 1765 | | |
1759 | 1766 | | |
1760 | | - | |
1761 | | - | |
| 1767 | + | |
| 1768 | + | |
1762 | 1769 | | |
1763 | 1770 | | |
1764 | | - | |
1765 | 1771 | | |
1766 | | - | |
| 1772 | + | |
1767 | 1773 | | |
1768 | 1774 | | |
1769 | | - | |
1770 | | - | |
1771 | 1775 | | |
1772 | 1776 | | |
1773 | 1777 | | |
1774 | 1778 | | |
1775 | | - | |
| 1779 | + | |
1776 | 1780 | | |
1777 | | - | |
| 1781 | + | |
1778 | 1782 | | |
1779 | 1783 | | |
1780 | 1784 | | |
| |||
1822 | 1826 | | |
1823 | 1827 | | |
1824 | 1828 | | |
| 1829 | + | |
1825 | 1830 | | |
1826 | 1831 | | |
1827 | 1832 | | |
| |||
1835 | 1840 | | |
1836 | 1841 | | |
1837 | 1842 | | |
| 1843 | + | |
1838 | 1844 | | |
1839 | 1845 | | |
1840 | 1846 | | |
| |||
1844 | 1850 | | |
1845 | 1851 | | |
1846 | 1852 | | |
| 1853 | + | |
1847 | 1854 | | |
1848 | 1855 | | |
1849 | 1856 | | |
| |||
1862 | 1869 | | |
1863 | 1870 | | |
1864 | 1871 | | |
| 1872 | + | |
1865 | 1873 | | |
1866 | 1874 | | |
1867 | 1875 | | |
| |||
1878 | 1886 | | |
1879 | 1887 | | |
1880 | 1888 | | |
| 1889 | + | |
1881 | 1890 | | |
1882 | 1891 | | |
1883 | 1892 | | |
1884 | 1893 | | |
| 1894 | + | |
1885 | 1895 | | |
1886 | 1896 | | |
1887 | 1897 | | |
| |||
1914 | 1924 | | |
1915 | 1925 | | |
1916 | 1926 | | |
| 1927 | + | |
1917 | 1928 | | |
1918 | 1929 | | |
1919 | 1930 | | |
1920 | 1931 | | |
1921 | 1932 | | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
1922 | 1939 | | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
1923 | 1944 | | |
1924 | 1945 | | |
1925 | | - | |
| 1946 | + | |
1926 | 1947 | | |
1927 | 1948 | | |
1928 | 1949 | | |
| |||
1964 | 1985 | | |
1965 | 1986 | | |
1966 | 1987 | | |
| 1988 | + | |
1967 | 1989 | | |
1968 | 1990 | | |
1969 | 1991 | | |
| |||
3662 | 3684 | | |
3663 | 3685 | | |
3664 | 3686 | | |
| 3687 | + | |
3665 | 3688 | | |
3666 | 3689 | | |
3667 | 3690 | | |
| 3691 | + | |
| 3692 | + | |
3668 | 3693 | | |
3669 | 3694 | | |
3670 | 3695 | | |
| |||
3674 | 3699 | | |
3675 | 3700 | | |
3676 | 3701 | | |
3677 | | - | |
3678 | | - | |
| 3702 | + | |
| 3703 | + | |
| 3704 | + | |
| 3705 | + | |
3679 | 3706 | | |
3680 | 3707 | | |
3681 | 3708 | | |
| |||
4329 | 4356 | | |
4330 | 4357 | | |
4331 | 4358 | | |
4332 | | - | |
| 4359 | + | |
4333 | 4360 | | |
4334 | 4361 | | |
4335 | 4362 | | |
4336 | 4363 | | |
4337 | 4364 | | |
4338 | | - | |
| 4365 | + | |
4339 | 4366 | | |
4340 | 4367 | | |
4341 | 4368 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
| 266 | + | |
266 | 267 | | |
267 | 268 | | |
268 | 269 | | |
| |||
0 commit comments