@@ -7,7 +7,7 @@ information look below.
7
7
The version states at which version a feature has been merged into the mainline
8
8
kernel. It does not tell anything about at which kernel version it is
9
9
considered mature enough for production use. For an estimation on stability of
10
- features see [[ Status]] page.
10
+ features see :doc: ` Status<Status> ` page.
11
11
12
12
6.x
13
13
---
@@ -16,15 +16,15 @@ features see [[Status]] page.
16
16
Send protocol update that adds new commands and extends existing
17
17
functionality to write large data chunks. Compressed (and encrypted)
18
18
extents can be optionally emitted and transferred as-is without the need
19
- to recompress (or reencrypt ) on the receiving side.
19
+ to re-compress (or re-encrypt ) on the receiving side.
20
20
21
21
6.0 - sysfs exports commit stats
22
- The file /sys/fs/btrfs/FSID/commit_stats shows number of commits and
22
+ The file :file: ` /sys/fs/btrfs/FSID/commit_stats ` shows number of commits and
23
23
various time related statistics.
24
24
25
25
6.0 - sysfs exports chunk sizes
26
26
Chunk size value can be read from
27
- /sys/fs/btrfs/FSID/allocation/PROFILE/chunk_size .
27
+ :file: ` /sys/fs/btrfs/FSID/allocation/PROFILE/chunk_size ` .
28
28
29
29
6.0 - sysfs shows zoned mode among features
30
30
The zoned mode has been supported since 5.10 and adding functionality.
@@ -33,7 +33,7 @@ features see [[Status]] page.
33
33
6.0 - checksum implementation is logged at mount time
34
34
When a filesystem is mounted the implementation backing the checksums
35
35
is logged. The information is also accessible in
36
- /sys/fs/btrfs/FSID/checksum .
36
+ :file: ` /sys/fs/btrfs/FSID/checksum ` .
37
37
38
38
6.1 - sysfs support to temporarily skip exact qgroup accounting
39
39
Allow user override of qgroup accounting and make it temporarily out
@@ -56,14 +56,14 @@ features see [[Status]] page.
56
56
features.
57
57
58
58
6.1 - discard stats available in sysfs
59
- The directory ' /sys/fs/btrfs/FSID/discard' exports statistics and
59
+ The directory :file: ` /sys/fs/btrfs/FSID/discard ` exports statistics and
60
60
tunables related to discard.
61
61
62
62
6.1 - additional qgroup stats in sysfs
63
63
The overall status of qgroups are exported in
64
- /sys/sys/fs/btrfs/FSID/qgroups/ .
64
+ :file: ` /sys/sys/fs/btrfs/FSID/qgroups/ ` .
65
65
66
- 6.1 - check that subperblock is unchanged at thaw time
66
+ 6.1 - check that super block is unchanged at thaw time
67
67
Do full check of super block once a filesystem is thawed. This namely
68
68
happens when system resumes from suspend or hibernation. Accidental
69
69
change by other operating systems will be detected.
@@ -74,22 +74,22 @@ features see [[Status]] page.
74
74
75
75
6.3 - discard=async settings tuned
76
76
The default IOPS limit has changed from 100 to 1000 and writing value 0
77
- to ' /sys/fs/btrfs/FSID/discard/iops_limit' newly means to not do any
77
+ to :file: ` /sys/fs/btrfs/FSID/discard/iops_limit ` newly means to not do any
78
78
throttling.
79
79
80
80
6.3 - block group allocation class heuristics
81
81
Pack files by size (up to 128k, up to 8M, more) to avoid fragmentation
82
82
in block groups, assuming that file size and life time is correlated,
83
83
in particular this may help during balance. The stats about the number
84
84
of used classes per block group type is exported in
85
- ' /sys/fs/btrfs/FSID/allocation/\* /size_classes' .
85
+ :file: ` /sys/fs/btrfs/FSID/allocation/\* /size_classes ` .
86
86
87
87
6.3 - in DEV_INFO ioctl export per-device FSID
88
- A seeding device could have a different FSID, available in syfs and now
88
+ A seeding device could have a different FSID, available in sysfs and now
89
89
available via DEV_INFO ioctl.
90
90
91
91
6.3 - send utimes cache, reduced stream size
92
- Utimes for directories are emitted into the send steram only when
92
+ Utimes for directories are emitted into the send stream only when
93
93
finalizing the directory, the cache also gains significant speedups (up
94
94
to 10x).
95
95
@@ -151,7 +151,7 @@ features see [[Status]] page.
151
151
filesystem. Now supports: nologreplay, usebackuproot
152
152
153
153
5.9 - qgroups in sysfs
154
- The information about qgroup status and relations is exported in * /sys/fs/UUID/qgroups *
154
+ The information about qgroup status and relations is exported in :file: ` /sys/fs/UUID/qgroups `
155
155
156
156
5.9 - FS_INFO ioctl
157
157
Export more information: checksum type, checksum size, generation, metadata_uuid
@@ -163,24 +163,25 @@ features see [[Status]] page.
163
163
5.11 - remove *inode_cache *
164
164
Remove inode number caching feature (mount -o inode_cache)
165
165
166
- 5.11 - more rescue=
166
+ 5.11 - more rescue= modes
167
167
Additional modes for mount option *rescue= *: ignorebadroots/ibadroots,
168
- ignoredatacsums/idatacsums. All are exported in sysfs.
168
+ ignoredatacsums/idatacsums. All are exported in
169
+ :file: `/sys/fs/btrfs/features/supported_rescue_options `.
169
170
170
171
5.12 - zoned mode
171
172
Support for zoned devices with special allocation/write mode to
172
- fixed-size zones. See [[ Zoned]] .
173
+ fixed-size zones. See :doc: ` Zoned<Zoned-mode> ` .
173
174
174
175
5.13 - supported_sectorsizes in sysfs
175
- List supported sector sizes in sysfs file /sys/fs/btrfs/features/supported_sectorsizes
176
+ List supported sector sizes in sysfs file :file: ` /sys/fs/btrfs/features/supported_sectorsizes `.
176
177
177
178
5.14 - sysfs scrub bw limit
178
179
Tunable bandwidth limit
179
- ( /sys/fs/btrfs/FSID/devinfo/DEVID/scrub_speed_max) for scrub (and
180
+ :file: ` /sys/fs/btrfs/FSID/devinfo/DEVID/scrub_speed_max ` for scrub (and
180
181
device replace) for a given device.
181
182
182
183
5.14 - sysfs device stats
183
- The device stats can be also found in /sys/fs/btrfs/FSID/devinfo/DEVID/error_stats.
184
+ The device stats can be also found in :file: ` /sys/fs/btrfs/FSID/devinfo/DEVID/error_stats ` .
184
185
185
186
5.14 - cancellable resize, device delete
186
187
The filesystem resize and device delete operations can be cancelled by
@@ -217,25 +218,25 @@ features see [[Status]] page.
217
218
218
219
5.17 - *no warning with flushoncommit *
219
220
Mounting with *-o flushoncommit * does not trigger the (harmless)
220
- warning at each transaction commit
221
+ warning at each transaction commit.
221
222
222
223
.. note ::
223
224
Also backported to 5.15.27 and 5.16.13
224
225
225
226
5.18 - zoned and DUP metadata
226
- DUP metadata works with zoned mode
227
+ DUP metadata works with zoned mode.
227
228
228
229
5.18 - encoded data ioctl
229
230
New ioctls to read and write pre-encoded data (i.e. no transformation
230
- and directly written as extents), now works for compressed data
231
+ and directly written as extents), now works for compressed data.
231
232
232
233
5.18 - *removed balance ioctl v1 *
233
234
The support for ioctl BTRFS_IOC_BALANCE has been removed, superseded by
234
- BTRFS_IOC_BALANCE_V2m long time ago
235
+ BTRFS_IOC_BALANCE_V2 long time ago.
235
236
236
237
5.18 - *cross-mount reflink works *
237
- the VFS limitation to reflink files on separate subvolume mounts of the
238
- same filesystem has been removed
238
+ The VFS limitation to reflink files on separate subvolume mounts of the
239
+ same filesystem has been removed.
239
240
240
241
5.18 - syslog error messages with filesystem state
241
242
Messages are printed with a one letter tag ("state: X") that denotes in
@@ -281,7 +282,7 @@ features see [[Status]] page.
281
282
Add possibility to set a threshold to automatically reclaim block groups
282
283
also in non-zoned mode. By default completely empty block groups are
283
284
reclaimed automatically but the threshold can be tuned in
284
- /sys/fs/btrfs/FSID/allocation/PROFILE/bg_reclaim_threshold .
285
+ :file: ` /sys/fs/btrfs/FSID/allocation/PROFILE/bg_reclaim_threshold ` .
285
286
286
287
5.19 - tree-checker verifies metadata block ownership
287
288
Additional check done by tree-checker to verify relationship between a
@@ -308,9 +309,10 @@ features see [[Status]] page.
308
309
309
310
4.4 - balance filter updates
310
311
Enhanced syntax and new balance filters:
311
- * limit=min..max
312
- * usage=min..max
313
- * stripes=min..max
312
+
313
+ * limit=min..max
314
+ * usage=min..max
315
+ * stripes=min..max
314
316
315
317
4.5 - free space tree
316
318
Improved implementation of free space cache (aka v2), using b-trees.
@@ -330,7 +332,7 @@ features see [[Status]] page.
330
332
331
333
4.6 - read features from control device
332
334
The existing ioctl GET_SUPPORTED_FEATURES can be now used on the
333
- control device (/dev/btrfs-control) and returns the supported features
335
+ control device (:file: ` /dev/btrfs-control ` ) and returns the supported features
334
336
without any mounted filesystem.
335
337
336
338
4.7 - delete device by id
@@ -384,7 +386,7 @@ features see [[Status]] page.
384
386
385
387
4.15 - *ref-verify *
386
388
Debugging functionality to verify extent references. New mount option
387
- <i> ref-verify</i> , must be built with CONFIG_BTRFS_FS_REF_VERIFY.
389
+ * ref-verify * , must be built with CONFIG_BTRFS_FS_REF_VERIFY.
388
390
389
391
4.15 - ZLIB level
390
392
Allow to set the ZLIB compression level via mount option, e.g. like
@@ -395,23 +397,21 @@ features see [[Status]] page.
395
397
An enhanced version of ioctl that can translate logical extent offset
396
398
to inode numbers, "who owns this block". For certain use cases the V1
397
399
performs bad and this is addressed by V2.
398
- [https://git.kernel.org/linus/d24a67b2d997c860a42516076f3315c2ad2d2884
399
- Read more.]
400
+ See for more https://git.kernel.org/linus/d24a67b2d997c860a42516076f3315c2ad2d2884 .
400
401
401
402
4.15 - compression heuristics
402
403
Apply a few heuristics to the data before they're compressed to decide
403
404
if it's likely to gain any space savings. The methods: frequency
404
405
sampling, repeated pattern detection, Shannon entropy calculation.
405
406
406
407
4.16 - fallocate: zero range
407
- Mode of the [http://man7.org/linux/man-pages/man2/fallocate.2.html
408
- *fallocate *] syscall to zero file range.
408
+ Mode of the *fallocate * syscall to zero file range.
409
409
410
410
4.17 - *removed user transaction ioctl *
411
- deprecated in 4.14, see above
411
+ Deprecated in 4.14, see above.
412
412
413
413
4.17 - *rmdir * on subvolumes
414
- Allow rmdir to delete an empty subvolume.
414
+ Allow * rmdir * to delete an empty subvolume.
415
415
416
416
4.18 - XFLAGS ioctl
417
417
Add support for ioctl FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR, successor of
@@ -470,7 +470,7 @@ features see [[Status]] page.
470
470
Support for metadata blocks larger than page size
471
471
472
472
.. note ::
473
- Default nodesize is 16k since btrfs-progs 3.12
473
+ Default nodesize is 16KiB since btrfs-progs 3.12
474
474
475
475
3.4 - error handling
476
476
Generic infrastructure for graceful error handling (EIO)
@@ -487,54 +487,59 @@ features see [[Status]] page.
487
487
3.6 - send/receive
488
488
Ability to transfer one filesystem via a data stream (full or
489
489
incremental) and apply the changes on a remote filesystem.
490
+
490
491
3.7 - extrefs
491
- Hardlink count limit is lifted to 64k
492
+ Hardlink count limit is lifted to 65536.
492
493
493
494
.. note ::
494
495
Default since btrfs-progs 3.12
495
496
496
497
3.7 - hole punching
497
- Implement the FALLOC_FL_PUNCH_HOLE mode of *fallocate *
498
+ Implement the FALLOC_FL_PUNCH_HOLE mode of *fallocate *.
498
499
499
500
3.8 - device replace
500
- Efficient replacement of existing device (add/remove in one go)
501
+ Efficient replacement of existing device (add/remove in one go).
501
502
502
503
3.9 - raid 5/6 *(incomplete) *
503
- Basic support for RAID5/6 profiles, no crash resiliency, replace and scrub support
504
+ Basic support for RAID5/6 profiles, no crash resiliency, replace and
505
+ scrub support.
504
506
505
507
3.9 - snapshot-aware defrag
506
- Defrag does not break links between shared extents (snapshots, reflinked files)
508
+ Defrag does not break links between shared extents (snapshots,
509
+ reflinked files).
507
510
508
511
.. note ::
509
512
Disabled since 3.14 (and backported to some stable kernel versions)
510
513
due to problems. Has been completely removed in 5.6.
511
514
512
515
3.9 - lightweight send
513
- A mode of *send * that does not add the actual file data to the stream
516
+ A mode of *send * that does not add the actual file data to the stream.
514
517
515
518
3.9 - on-line label set/get
516
- Label editable on mounted filesystems
519
+ Label editable on mounted filesystems.
517
520
518
521
3.10 - skinny metadata
519
- Reduced metadata size (format change) of extents
522
+ Reduced metadata size (format change) of extents.
520
523
521
524
.. note ::
522
525
Default since btrfs-progs 3.18
523
526
524
527
3.10 - qgroup rescan
525
- Sync qgroups with existing filesystem data
528
+ Sync qgroups with existing filesystem data.
526
529
527
530
3.12 - UUID tree
528
- A map of subvolume/UUID that vastly speeds up send/receive
531
+ A map of subvolume/UUID that vastly speeds up send/receive.
529
532
530
533
3.12 - out-of-bound deduplication
531
534
Support for deduplicating extents on a given set of files.
532
535
533
536
3.14 - no-holes
534
- No extent representation for file holes (format change), may reduce overall metadata consumption
537
+ No extent representation for file holes (format change), may reduce
538
+ overall metadata consumption
535
539
536
540
3.14 - feature bits in sysfs
537
- /sys/fs/btrfs exports various bits about filesystem capabilities and feature support
541
+ :file: `/sys/fs/btrfs ` exports various bits about filesystem
542
+ capabilities and feature support
538
543
539
544
3.16 - O_TMPFILE
540
545
Mode of open() to safely create a temporary file
0 commit comments