Commit 31b706d
committed
Merge tag 'for-7.2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
"The most noticeable change is to enable large folios by default, it's
been in testing for a few releases. Related to that is huge folio
support (still under experimental config). Otherwise a few ioctl
updates, performance improvements and usual fixes and core changes.
User visible changes:
- enable large folios by default, added in 6.17 (under experimental
build), no feature limitations, a big change internally
- new ioctl to return raw checksums to userspace (a bit tricky given
compression and tail extents), can be used for mkfs and
deduplication optimizations
- provide stable UUID for e.g. overlayfs and temp_fsid, also
reflected in statvfs() field f_fsid, internal dev_t is hashed in to
allow cloning
- add 32bit compat version of GET_SUBVOL_INFO ioctl
- in experimental build, support huge folios (up to 2M)
Performance related improvements/changes:
- limit bio size to the estimated optimum derived from the queue,
this prevents build up of too much data for writeback, which could
cause latency spikes (reported improvement 15% on sequential
writes)
- don't force direct IO to be serialized, forgotten change during
mount API port, brings back +60% of throughput
- lockless calculation of number of shrinkable extent maps, improve
performance with many memcg allocated objects
Notable fixes:
- in zoned mode, fix a deadlock due to zone reclaim and relocation
when space needs to be flushed
- don't trim device which is internally not tracked as writeable
(e.g. when missing device is being rescanned)
- fix deadlock when cloning inline extent and mounted with
flushoncommit
- fix false IO failures after direct IO falls back to buffered write
in some cases
Core:
- remove COW fixup mechanism completely; detect and fix changes to
pages outside of filesystem tracking, guaranteed since 5.8, grace
period is over
- remove 2K block size support, experimental to test subpage code on
x86_64 but now it would block folio changes
- tree-checker improvements of:
- free-space cache and tree items
- root reference and backref items
- extent state exceptions in reloc tree
- subpage mode updates:
- code optimizations, simplify tracking bitmaps
- re-enable readahead of compressed extent
- extend bitmap size to cover huge folios
- add tracepoints related to sync, tree-log and transactions
- device stats item tracking unification, remove item if there are no
stats recorded, also don't leave stale stats on replaced device
- allow extent buffer pages to be allocated as movable, to help page
migration
- added checks for proper extent buffer release
- btrfs.ko code size reduction due to transaction abort call
simplifications
- several struct size reductions
- more auto free conversions
- more verbose assertions"
* tag 'for-7.2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (130 commits)
btrfs: fix use-after-free after relocation failure with concurrent COW
btrfs: move WARN_ON on unexpected error in __add_tree_block()
btrfs: move locking into btrfs_get_reloc_bg_bytenr()
btrfs: lzo: reject compressed segment that overflows the compressed input
btrfs: retry faulting in the pages after a zero sized short direct write
btrfs: fix incorrect buffered IO fallback for append direct writes
btrfs: fix false IO failure after falling back to buffered write
btrfs: use verbose assertions in backref.c
btrfs: print a message when a missing device re-appears
btrfs: do not trim a device which is not writeable
btrfs: return real error after lookup failure in btrfs_ioctl_default_subvol()
btrfs: use mapping shared locking for reading super block
btrfs: use lockless read in nr_cached_objects shrinker callback
btrfs: switch local indicator variables to bools
btrfs: send: pass bool for pending_move and refs_processed parameters
btrfs: use shifts for sectorsize and nodesize
btrfs: fix deadlock cloning inline extent when using flushoncommit
btrfs: allocate eb-attached btree pages as movable
btrfs: add 32-bit compat ioctl for BTRFS_IOC_GET_SUBVOL_INFO
btrfs: derive f_fsid from on-disk fsid and dev_t
...58 files changed
Lines changed: 3475 additions & 1904 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 | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | 96 | | |
101 | 97 | | |
102 | 98 | | |
| |||
110 | 106 | | |
111 | 107 | | |
112 | 108 | | |
113 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
114 | 112 | | |
115 | 113 | | |
116 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1256 | 1256 | | |
1257 | 1257 | | |
1258 | 1258 | | |
1259 | | - | |
| 1259 | + | |
1260 | 1260 | | |
1261 | 1261 | | |
1262 | 1262 | | |
| |||
1327 | 1327 | | |
1328 | 1328 | | |
1329 | 1329 | | |
1330 | | - | |
| 1330 | + | |
1331 | 1331 | | |
1332 | 1332 | | |
1333 | 1333 | | |
| |||
2367 | 2367 | | |
2368 | 2368 | | |
2369 | 2369 | | |
2370 | | - | |
| 2370 | + | |
2371 | 2371 | | |
2372 | 2372 | | |
2373 | 2373 | | |
| |||
2814 | 2814 | | |
2815 | 2815 | | |
2816 | 2816 | | |
2817 | | - | |
| 2817 | + | |
2818 | 2818 | | |
2819 | | - | |
2820 | | - | |
2821 | | - | |
2822 | | - | |
2823 | | - | |
2824 | | - | |
2825 | | - | |
2826 | | - | |
2827 | | - | |
2828 | | - | |
2829 | | - | |
| 2819 | + | |
| 2820 | + | |
| 2821 | + | |
2830 | 2822 | | |
2831 | 2823 | | |
2832 | | - | |
2833 | | - | |
2834 | | - | |
| 2824 | + | |
| 2825 | + | |
2835 | 2826 | | |
2836 | | - | |
| 2827 | + | |
2837 | 2828 | | |
2838 | 2829 | | |
2839 | 2830 | | |
| |||
2846 | 2837 | | |
2847 | 2838 | | |
2848 | 2839 | | |
2849 | | - | |
| 2840 | + | |
2850 | 2841 | | |
2851 | | - | |
2852 | 2842 | | |
2853 | 2843 | | |
2854 | 2844 | | |
| |||
2963 | 2953 | | |
2964 | 2954 | | |
2965 | 2955 | | |
2966 | | - | |
| 2956 | + | |
2967 | 2957 | | |
2968 | 2958 | | |
2969 | 2959 | | |
| |||
2974 | 2964 | | |
2975 | 2965 | | |
2976 | 2966 | | |
2977 | | - | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
2978 | 2970 | | |
2979 | 2971 | | |
2980 | 2972 | | |
| |||
2997 | 2989 | | |
2998 | 2990 | | |
2999 | 2991 | | |
3000 | | - | |
| 2992 | + | |
3001 | 2993 | | |
3002 | | - | |
3003 | | - | |
| 2994 | + | |
3004 | 2995 | | |
3005 | 2996 | | |
3006 | 2997 | | |
| |||
3041 | 3032 | | |
3042 | 3033 | | |
3043 | 3034 | | |
3044 | | - | |
| 3035 | + | |
3045 | 3036 | | |
3046 | 3037 | | |
3047 | 3038 | | |
| |||
3063 | 3054 | | |
3064 | 3055 | | |
3065 | 3056 | | |
3066 | | - | |
| 3057 | + | |
3067 | 3058 | | |
3068 | 3059 | | |
3069 | 3060 | | |
| |||
3166 | 3157 | | |
3167 | 3158 | | |
3168 | 3159 | | |
3169 | | - | |
3170 | | - | |
| 3160 | + | |
| 3161 | + | |
3171 | 3162 | | |
3172 | 3163 | | |
3173 | 3164 | | |
3174 | 3165 | | |
3175 | 3166 | | |
3176 | 3167 | | |
3177 | | - | |
| 3168 | + | |
| 3169 | + | |
| 3170 | + | |
| 3171 | + | |
3178 | 3172 | | |
3179 | 3173 | | |
3180 | 3174 | | |
| |||
3199 | 3193 | | |
3200 | 3194 | | |
3201 | 3195 | | |
3202 | | - | |
| 3196 | + | |
3203 | 3197 | | |
3204 | 3198 | | |
3205 | 3199 | | |
| |||
3294 | 3288 | | |
3295 | 3289 | | |
3296 | 3290 | | |
3297 | | - | |
| 3291 | + | |
| 3292 | + | |
| 3293 | + | |
3298 | 3294 | | |
3299 | 3295 | | |
3300 | 3296 | | |
| |||
3344 | 3340 | | |
3345 | 3341 | | |
3346 | 3342 | | |
3347 | | - | |
3348 | | - | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
3349 | 3346 | | |
3350 | 3347 | | |
3351 | 3348 | | |
| |||
3454 | 3451 | | |
3455 | 3452 | | |
3456 | 3453 | | |
3457 | | - | |
| 3454 | + | |
3458 | 3455 | | |
3459 | 3456 | | |
3460 | 3457 | | |
3461 | 3458 | | |
3462 | 3459 | | |
3463 | 3460 | | |
3464 | 3461 | | |
3465 | | - | |
| 3462 | + | |
3466 | 3463 | | |
3467 | 3464 | | |
3468 | 3465 | | |
| |||
3492 | 3489 | | |
3493 | 3490 | | |
3494 | 3491 | | |
3495 | | - | |
| 3492 | + | |
3496 | 3493 | | |
3497 | 3494 | | |
3498 | 3495 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
281 | | - | |
282 | 281 | | |
283 | 282 | | |
284 | 283 | | |
285 | 284 | | |
286 | 285 | | |
287 | 286 | | |
288 | | - | |
289 | | - | |
290 | 287 | | |
291 | 288 | | |
292 | 289 | | |
| |||
302 | 299 | | |
303 | 300 | | |
304 | 301 | | |
305 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
306 | 305 | | |
307 | | - | |
| 306 | + | |
308 | 307 | | |
309 | 308 | | |
310 | 309 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
25 | 53 | | |
26 | 54 | | |
27 | 55 | | |
| |||
180 | 208 | | |
181 | 209 | | |
182 | 210 | | |
183 | | - | |
| 211 | + | |
184 | 212 | | |
185 | | - | |
| 213 | + | |
186 | 214 | | |
187 | 215 | | |
188 | 216 | | |
| |||
2371 | 2399 | | |
2372 | 2400 | | |
2373 | 2401 | | |
2374 | | - | |
| 2402 | + | |
2375 | 2403 | | |
2376 | 2404 | | |
2377 | 2405 | | |
2378 | | - | |
| 2406 | + | |
2379 | 2407 | | |
2380 | | - | |
| 2408 | + | |
2381 | 2409 | | |
2382 | 2410 | | |
2383 | 2411 | | |
| |||
2454 | 2482 | | |
2455 | 2483 | | |
2456 | 2484 | | |
2457 | | - | |
| 2485 | + | |
2458 | 2486 | | |
2459 | 2487 | | |
2460 | 2488 | | |
| |||
2635 | 2663 | | |
2636 | 2664 | | |
2637 | 2665 | | |
2638 | | - | |
| 2666 | + | |
2639 | 2667 | | |
2640 | 2668 | | |
2641 | 2669 | | |
| |||
2660 | 2688 | | |
2661 | 2689 | | |
2662 | 2690 | | |
2663 | | - | |
| 2691 | + | |
2664 | 2692 | | |
2665 | | - | |
| 2693 | + | |
2666 | 2694 | | |
2667 | 2695 | | |
2668 | 2696 | | |
| |||
4089 | 4117 | | |
4090 | 4118 | | |
4091 | 4119 | | |
4092 | | - | |
| 4120 | + | |
4093 | 4121 | | |
4094 | 4122 | | |
4095 | 4123 | | |
| |||
0 commit comments