Changes (btrfs-progs)
Signed release tarballs can be found at https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/
btrfs-progs-6.5 (2023-09-01)
crc32c implementation speedup (3x)
- btrfstune:
be more strict about option combinations and refuse changing features from incompatible groups
metadata_uuid changes fixes
libbtrfs: fix ABI breakage introduced in 6.3.1, revert struct subvol_info and subvol_uuid_search changes
- CI updates
pull request build tests enabled
published static binaries built with backward compatibility (-march=x86-64)
- other
documentation updates
new and updated tests
experimental feature updates (json, list-chunks, checksum switch)
code refactoring
remove btrfs-fragments
btrfs-progs-6.5.1 (2023-09-13)
- build fixes:
crc32c if PIE or relro is enabled
detect if PCLMUL feature is recognized by compiler and also detect that at runtime
check: verify metadata item level when skinny-metadata is enabled
other: minor build and docs updates
btrfs-progs-6.4 (skipped)
btrfs-progs-6.3 (2023-04-27)
mkfs: option -R deprecated, options unified in -O (-R still works)
mkfs: fix potential race with udev leading to EBUSY due to repeatedly opened file descriptors
- block-group-tree is out of experimental mode
available as ‘mkfs.btrfs -O block-group-tree’
btrfstune can do in-place conversion to/from (use with care)
balance: fix recognizing old and new syntax
subvol snapshot: specific error if a failure is caused by an active swapfile
tree-stats: rephrase warning when run on a mounted filesystem
completion: ‘filesystem du’ also completes files
check: fix docs, help text and warning that --force + --repair works on a mounted filesystem
build: fix static build when static libudev is available
- documentation:
more updates from wiki, developer docs, changelogs
reformatting
updates and fixes
- other:
test updates and fixes
CI cleanups and old files removed
integration with Github actions
btrfs-progs-6.3.1 (2023-05-29)
convert: fix checksum of a block relocated from 0-1M range
qgroup show: fix formatting of limit values in json output
receive: report paret subovl UUID on errors
btrfsune: new option --convert-to-free-space-tree to convert from block-group-tree back to extent tree for block group tracking
mkfs: make option --rootdir more verbose and report start when filling from the given directory starts
- experimental:
btrfstune: checksum switch logic reimplemented, conversion of all metadata and data now works, resume from various states also supported
- other:
more CI github actions test coverage
more kernel/userspace source code sync
warning fixes
code cleanups
documentation updates
btrfs-progs-6.3.2 (2023-06-15)
fix mkfs and others on big endian hosts
mkfs: don’t print changed defaults notice with --quiet
scrub: fix wrong stats of processed bytes in background and foreground mode
convert: actually create free-space-tree instead of v1 space cache
print-tree: recognize and print CHANGING_FSID_V2 flag (for the metadata_uuid change in progress)
other: documentation updates
btrfs-progs-6.3.3 (2023-07-27)
add btrfs-find-root to btrfs.box
replace: properly enqueue if there’s another replace running
- other:
CI updates, more tests enabled, code coverage, badges
documentation updates
build warning fixes
btrfs-progs-6.2 (2023-02-28)
receive: fix a corruption when decompressing zstd extents
subvol sync: print total number and deletion progress
accelerated hash algorithm implementations in fallback mode on x86_64
fi mkswapfile: new option --uuid
new global option --log=level to set the verbosity level directly
- other:
experimental: update checksum conversion (not usable yet)
build actually requires -std=gnu11
refactor help option formatting, auto wrap long lines
btrfs-progs-6.2.1 (2023-02-03)
fix build with crypto libraries
CI images updated, build tests extended
btrfs-progs-6.2.2 (2023-03-25)
fix build on old x86 architectures with builtin crypto
device stats: fix printing wrong values in tabular output
qgroup show: fix qgroup id formatting in json output
restore: fix restoring xattrs on directories
restore: don’t modify metadata in dry-run mode
balance: fix some cases wrongly parsed as old syntax
balance: warn when deprecated syntax is used
seeding: fall back to old way if sysfs device fsid is not available
convert: handle orphan file ext4 feature
- other:
sync ioctl definitions
enable github CI
update documentation
btrfs-progs-6.1 (2022-12-22)
NOTE: this version breaks build of applications using ctree.h and qgroup items
filesystem df: add json output
qgroup show: add json output
new command: ‘inspect-internal map-swapfile’ to check swapfile and its swapfile_offset value used for hibernation
corrupt-block: fix parsing of option --root argument
- experimental (interfaces not finalized):
new command ‘inspect-internal list-chunks’
new group reflink, command clone
- other:
synchronize some files with kernel versions
docs updates
build: use gnu11
btrfs-progs-6.1.1 (2023-01-03)
subvol list: fix printing of UUID
revert changes to ctree.h regarding qgroup items, breaks build of several applications
hide __init definition in kerncompat.h, may break build
btrfs-progs-6.1.2 (2023-01-05)
revert libbtrfs changes to v6.0.2, fix remaining build problems
btrfs-progs-6.1.3 (2023-01-25)
fi mkswapfile: fix setting size
mkfs: check zoned support of libblkid
check: improve error messages for mismatched references
- other:
pass CFLAGS to static build
documentation updates
btrfs-progs-6.0 (2022-10-11)
fi usage: in tabular output, print total size and slack size
- mkfs:
option -O now accepts values from -R to unify the interface (-R will continue to work)
zone reset and discard is done in parallel on all devices
removed option --leafsize, deprecated long time ago
corrupt-block: recalculate checksum when changing generation
- fixes:
convert: fix reserved range detection and overlaps
mkfs: fix creating files with reserved inode numbers with --rootdir
receive: escape filenames in command attributes
fix extent buffer leaks after transaction abort
- experimental:
mkfs: support for block-group-tree (kernel 6.1)
fsverity in send (protocol v3, WIP)
btrfstune -b converts to block-group-tree
- other:
cleanups, refactoring
new and updated tests
update documentation
btrfs-progs-6.0.1 (2022-11-04)
send: minor speed up for v2 due to increased buffer size
resize: invalid command line options fail with error code
- quota rescan:
add long options --status and --wait
new option to wait but don’t start rescan
qgroup show: print path by default, updated format
qgroup: new subcommand clear-stale, remove qgroups without their subvolumes
- experimental:
add warnings to commands that have it enabled (mkfs, image, btrfstune)
- other:
documentation, help text, error message updates
btrfs-progs-6.0.2 (2022-11-24)
- fixes:
resize cancel did not work in some cases
fix fileattr stream command format and add workaround when it cannot be applied
properly handle degraded raid56 reads
fi defrag: fix verbosity, don’t print file names by default
receive: fix silent data loss after fall back from encoded write
fi mkswapfile: new command to create a formatted swapfile in one go
btrfs-progs-5.19 (2022-08-16)
send: support protocol version 2
fi show: print all missing devices
device stats: add tabular output
replace: add alias to device group (device replace)
check: validate free space tree items
- fixes:
convert: support large filesystems (block count > 32bit)
recognize filesystems with verity enabled
mkfs and DUP could write out of order, fix it for zoned mode
- build:
optional support for LZO and ZSTD in receive
compatibility with glibc 2.36 (mount.h)
add fallbacks for new GCC builtins
- other:
corrupt-block: target specific items, offsets
documentation updates, new pages from wiki
new tests
btrfs-progs-5.19.1 (2022-09-12)
fix memory leaks (extent buffer, path)
check: verify block device size vs item
rescue fix-device-size: allow to shrink device item
receive: fix crash on wrong pinter free()
- other:
experimental: support for block-group-tree
documentation updates
new tests
btrfs-progs-5.18 (2022-05-25)
- fixes:
dump-tree: don’t print traling zeros in checksums
recognize paused balance as exclusive operation state, allow to start device add
convert: properly initialize target filesystem label
mkfs: don’t create free space bitmaps for empty filesystem
restore: make lzo support build-time configurable, print supported compression in help text
update kernel-lib sources
- other:
documentation updates, finish conversion to RST, CHANGES and INSTALL could be included into RST
fix build detection of experimental mode
new tests
btrfs-progs-5.18.1 (2022-06-06)
- fixes:
convert: fix self reference of toplevel directory
build: make kernel lib headers compatible with C++
zoned mode: verify minimum zone size 4MiB
libbtrfs: cleanups, merge headers and remove declarations of unexported symbols
other: documentation updates
btrfs-progs-5.17 (2022-04-26)
- check:
repair wrong num_devices in superblock
recognize overly long xattr names
fix wrong total bytes check for seed device
auto-repair on read on RAID56
property set: unify handling of empty value to mean default, changed meaning for property ‘compression’ to allow reset to default and to set NOCOMPRESS, since kernel 5.14
- fixes:
dump-tree: print fs-verity items
fix location of system chunk on zoned filesystem
do not allow setting seeding flag on a filesystem with dirty log
mkfs and subpage support: use sectorsize as nodesize fallback for mixed profiles
preparatory work for extent tree v2, global roots
- experimental feature (unstable interface, not built by default,
do not use for production) * btrfstune: option --csum to switch checksum algorithm
- other:
cleanups, refactoring
update documentation build, remove asciidocs leftovers
update fssum to consider xattrs
add fsstress
btrfs-progs-5.16 (2022-01-12)
rescue: new subcommand clear-uuid-tree to fix failed mount due to bad uuid subvolume keys, caught by tree-checker
fi du: skip inaccessible files
prop: properly resolve to symlink targets
send, receive: fix crash after parent subvolume lookup errors
- build:
fix build on 5.12+ kernels due to changes in linux/kernel.h
fix build on musl with old kernel headers
- other:
error handling fixes, cleanups, refactoring
extent tree v2 preparatory work
lots of RST documentation updates (last release with asciidoc sources), https://btrfs.readthedocs.io
btrfs-progs-5.16.1 (2022-02-04)
mkfs: support DUP on metadata on zoned devices
subvol delete: drop warning for root when search ioctl fails
- check:
fix --init-csum-tree to not create checksums for extents that are not supposed to have them
add check for metadata item levels
add udev rule for zoned devices as they require mq-deadline
build: fix redefinition of ALIGN on mixed old/new kernel/userspace (5.11)
- other:
typo fixes
new tests
CI targets updated
btrfs-progs-5.16.2 (2022-02-16)
mkfs: fix detection of profile type for zoned mode when creating DUP
- build:
add missing stub for zoned mode helper when zoned mode not enabled
fix 64bit types on MIPS and PowerPC
improved zoned mode support autodetection, for systems with existing blkzone.h header but missing support for zone capacity
- other:
doc updates
test updates
btrfs-progs-5.15 (2021-11-05)
- mkfs: new defaults!
no-holes
free-space-tree
DUP for metadata unconditionally
- libbtrfsutil
add missing profile defines
- libbtrfs
minimize its impact on the other code, refactor and separate implementation where needed, cleanup afterwards, reduced header exports
- documentation
introduce sphinx build and RST versions of manual pages, will become the new format and replace asciidoc
- fixes:
fix warning regarding v1 space cache when only v2 (free space tree) is enabled
- other
lots of cleanups and refactoring
zoned mode uses direct io for file backed images
new and updated tests
btrfs-progs-5.15.1 (2021-11-22)
- fixes:
fi usage: fix wrongly reported space of used or unallocated space
fix detection of block device discard capability
check: add more sanity checks for checksum items
build: make sphinx optional backend for documentation
btrfs-progs-5.14 (2021-09-10)
- convert:
new option --uuid to copy, generate or set a given uuid
improve output
- mkfs:
allow to create degenerate raid0 (on 1 device) and raid10 (on 2 devices)
- image:
improved error messages
fix some alignment of restored image
subvol delete: allow to delete by id when path is not resolvable
- check:
require alignment of nodesize for 64k page systems
detect and fix invalid block groups
- libbtrfs (deprecated):
remove most exported symbols, leave only a few that are used by snapper
no version change (still 0.1)
remove btrfs-list.h, btrfsck.h
- fixes:
reset generation of space v1 if v2 is used
fi us: don’t wrongly report missing device size when partition is not readable
- other:
build: experimental features
build: better detection of 64bit timestamp support for ext4
corrupt-block: block group items
new and updated tests
refactoring
- experimental features:
new image dump format, with data
btrfs-progs-5.14.1 (2021-09-20)
- fixes:
defrag: fix parsing of compression (option -c)
add workaround for old kernels when reading zone sizes
let only check and restore open the fs with transid failures, namely preventing btrfstune to do so
convert: --uuid copy does not fail on duplicate uuids
btrfs-progs-5.14.2 (2021-10-08)
- fixes
- zoned mode
properly detect non-zoned devices in emulation mode
properly create quota tree
raid1c3/4 also excluded from unsupported profiles
use sysfs-based detection of device discard capability, fix mkfs-time trim for non-standard devices
mkfs: fix creation of populated filesystem with free space tree
detect multipath devices (needs libudev)
replace start: add option -K/--nodiscard, similar to what mkfs or device add has
dump-tree: print complete root_item
mkfs: add option --verbose
sb-mod: better help, no checksum calculation on read-only actions
- subvol show:
print more information (regarding send and receive)
print warning if read-write subvolume has received_uuid set
- property set:
add parameter -f to force changes
changing ro->rw switch now needs -f if subvolume has received_uuid set, (see documentation)
- build
optional libudev (on by default)
- other
remove deprecated support for CREATE_ASYNC bit for subvolume ioctl
CI updates
new and updated tests
btrfs-progs-5.13 (2021-07-13)
restore: remove loop checks for extent count and directory scan
inspect dump-tree: new options to print node (--csum-headers) and data checksums (--csum-items)
- fi usage:
print stripe count for striped profiles
print zoned information: size, total unusable
mkfs: print note about sha256 accelerated module loading issue
check: ability to reset dev_item::bytes_used
- fixes
detect zoned kernel support at run time too
exclusive op running check return value
fi resize: support cancel (kernel 5.14)
device remove: support cancel (kernel 5.14)
- documentation about general topics
compression
zoned mode
storage model
hardware considerations
- other
libbtrfsutil API overview
help text fixes and updates
hash speedtest measure time, cycles using perf and print throughput
btrfs-progs-5.13.1 (2021-07-30)
build: fix build on musl libc due to missing definition of NAME_MAX
- check:
batch more work into one transaction when clearing v1 free space inodes
detect directories with wrong number of links
libbtrfsutil: fix race between subvolume iterator and deletion
mkfs: be more specific about supported profiles for zoned device
- other:
documentation updates
btrfs-progs-5.12 (2021-05-10)
libbtrfsutil: relicensed to LGPL v2.1+
mkfs: zoned mode support (kernel 5.12+)
fi df: show zone_unusable per profile type in zoned mode
fi usage: show total amount of zone_unusable
fi resize: fix message for exact size
image: fix warning and enlarge output file if necessary
- core
refactor chunk allocator for more modes
implement zoned mode support: allocation and writes, sb log
crypto/hash refactoring and cleanups
refactoring and cleanups
- other
test updates
CI updates
travis-ci integration disabled
docker images updated, more coverage
incomplete build support for Android removed
- doc updates
chattr mode m for ‘NOCOMPRESS”
swapfile used from fstab
how to add a new export to libbtrfsutil
update status of mount options since 5.9
btrfs-progs-5.12.1 (2021-05-13)
build: fix missing symbols in libbtrfs
mkfs: check for minimal number of zones
check: fix warning about cache generation when free space tree is enabled
fix superblock write in zoned mode on 16K pages
btrfs-progs-5.11 (2021-03-05)
fix device path canonicalization for device mapper devices
receive: remove workaround for setting capabilities, all stable kernels have been patched
receive: fix duplicate mount path detection
rescue: new subcommand create-control-device
device stats: minor fix for plain text format output
build: detect if e2fsprogs support 64bit timestamps
build: drop libmount, required functionality has been reimplemented
mkfs: warn when raid56 is used
balance convert: warn when raid56 is used
- other
new and updated tests
- documentation updates
seeding device
raid56 status
- CI updates
docker images for various distros
btrfs-progs-5.11.1 (2021-03-24)
properly format checksums when a mismatch is reported
check: fix false alert on tree block crossing 64K page boundary
- convert:
refuse to convert filesystem with ‘needs_recovery’
update documentation to require fsck before conversion
balance convert: fix raid56 warning when converting other profiles
fi resize: improved summary
- other
build: fix checks and autoconf defines
fix symlink paths for CI support scripts
updated tests
btrfs-progs-5.10 (2021-01-18)
- scrub status:
print percentage of progress
add size unit options
fi usage: also print free space from statfs
convert: copy full 64 bit timestamp from ext4 if available
- check:
add ability to repair extent item generation
new option to remove leftovers from inode number cache (-o inode_cache)
check for already running exclusive operation (balance, device add/…) when starting one
preliminary json output support for ‘device stats’
- fixes:
subvolume set-default: id 0 correctly falls back to toplevel
receive: align internal buffer to allow fast CRC calculation
logical-resolve: distinguish -o subvol and bind mounts
build: new dependency libmount
- other
doc fixes and updates
new tests
ci on gitlab temporarily disabled
debugging output enhancements
btrfs-progs-5.10.1 (2021-02-05)
static build works again
- other:
add a way to test static binaries with the testsuite
clarify scrub docs
update dependencies, minimum version for libmount is 2.24, this may change in the future
btrfs-progs-5.9 (2020-10-23)
- mkfs:
switch default to single profile for multi-device filesystem, up to now it was raid0 that may not be simple to convert to some other profile as raid0 needs a workspace on all device for that
new option -R for run-time options (eg. mount time enabled), now understands free-space-tree
- subvolume delete:
refuse to delete the default subvolume (kernel will not allow that but the error reason is not obvious)
warn on EPERM, eg. if send is on progress on the subvolume
- convert:
fix 32bit overflows on large filesystems
improved error handling and error messages
check free space taking fragmentation into account
- check:
detect and repair wrong inode generation
minor improvement in error reporting on roots
- libbtrfsutils: follow main package versioning (5.9)
add pkg-config file definitions
python-btrfsutil: follow main package versioning (5.9)
inspect tree-stats: print node counts for each level, fanout
- other:
- docs:
remove obsolete mount options (alloc_start, subvolrootid)
deleting default subvolume is not permitted
updated or fixed tests
.editorconfig updates
move files to kernel-shared/
- CI:
updated to use zstd 1.4.5
fix reiserfs build
more builds with asan, ubsan
sb-mod updates
- build:
print .so versions of libraries in configure summary
btrfs-progs-5.8 (skipped)
btrfs-progs-5.7 (2020-07-02)
- mkfs:
new option to enable features otherwise enabled at runtime, now implemented for quotas, ‘mkfs.btrfs -R quota’
fix space accounting for small image, DUP and --rootdir
option -A removed
check: detect ranges with overlapping csum items
fi usage: report correct numbers when plain RAID56 profiles are used
convert: ensure the data chunks size never exceed device size
libbtrfsutil: update documentation regarding subvolume deletion
build: support libkcapi as implementation backend for cryptographic primitives
core: global options for verbosity (-v, -q), subcommands -v or -q are aliases and will continue to work but are considered deprecated, current command output is preserved to keep scripts working
- other:
block group code cleanups
build warning fixes
more files moved to kernel-shared
btrfs-debugfs ported to python 3
documentation updates
new tests
btrfs-progs-5.6 (2020-04-05)
inspect logical-resolve: support LOGICAL_INO_V2 as new option ‘-o’, helps advanced dedupe tools
inspect: user larger buffer (64K) for results
subvol delete: support deletion by id (requires kernel 5.7+)
- libbtrfsutil:
support subvolume deletion by id
bump version to 1.2
library symbols are now versioned
dump-tree: new option --hide-names, replace any names (file, directory, subvolume, xattr) in the output with stubs
convert: warn if the filesystem is not mountable on the machine
- fixes:
restore: proper mirror iteration on decompression error
restore: make symlink messages less noisy
check: handle holes at the beginning or end of file
fix xxhash output on big endian machines
receive: fix lookup of subvolume by uuid in case it was already received before
- other:
new and updated tests
add missing binaries in exported testsuite
docs updates
remove obsolete files
move files to more appropriate directories
fixes reported by valgrind
many typos fixed
btrfs-progs-5.6.1 (2020-05-07)
print warning when multiple block group profiles exist, update ‘fi usage’ summary, add docs to maual page explaining the situation
build: optional support for libgcrypt or libsodium, providing hash implementations
- other:
fixed, updated and new tests
cleanups
updated docs
btrfs-progs-5.5 (skipped)
btrfs-progs-5.4 (2019-12-03)
- support new hash algorithms (kernel 5.5):
mkfs.btrfs and btrfs-convert with --csum, crc32c, xxhash, sha256, blake2
mkfs: support new raid1c3 and raid1c4 block group profiles (kernel 5.5)
- check:
--repair delays start with a warning, can be skipped using --force
enhanced detection of inode types from partial data, more options for repair
receive: fix quiet option
image: speed up chunk loading
- fi usage:
sort devices by id
print ratio of used/total per block group type
rescue zero-log: reset the log pointers directly, avoid reading some other potentially damaged structures
new make target install-static to install only static binaries/libraries
- other
docs updates
new tests
cleanups and refactoring
btrfs-progs-5.4.1 (2020-01-09)
build: fix docbook5 build
check: do extra verification of extent items, inode items and chunks
qgroup: return ENOTCONN if quotas not running (needs updated kernel)
other: various test fixups
btrfs-progs-5.3 (2019-10-21)
- mkfs:
new option to specify checksum algorithm (only crc32c)
fix xattr enumeration
dump-tree: BFS (breadth-first) traversal now default
libbtrfsutil: remove stale BTRFS_DEV_REPLACE_ITEM_STATE_x defines
ci: add support for gitlab
- other:
preparatory work for more checksum algorithms
docs update
switch to docbook5 backend for asciidoc
fix build on uClibc due to missing backtrace()
lots of printf format fixups
btrfs-progs-5.3.1 (2019-10-25)
libbtrfs: fix link breakage due to missing symbols
btrfs-progs-5.2 (2019-07-05)
subvol show: print qgroup information when available
- scrub:
status: show ETA, revamp the whole output
fix reading/writing of last position on resume/cancel, potentially skipping part of the filesystem on next resume
dump-tree: add new option --noscan to use only devices given on the commandline
all-in-one binary (busybox style) with mkfs.btrfs, btrfs-image, btrfs-convert, btrfstune
image: fix hang when there are more than 32 cpus online and compression is requested
convert: fix some false ENOSPC errors when --rootdir is used
build: fix gcc9 warnings
- core changes
command handling cleanups
dead code removal
cmds-* files moved to cmds/
other shared userspace files moved to common/
utils.c split into more files
preparatory work for more output formats
libbtrfsutil: fix unaligned access
- other
new and updated tests
fix tests so CI passes again
sb-mod can modify more superblock items
btrfs-progs-5.2.1 (2019-07-26)
scrub status: fix ETA calculation after resume
check: fix crash when using -Q
restore: fix symlink owner restoration
mkfs: fix regression with mixed block groups
core: fix commit to process all delayed refs
- other:
minor cleanups
test updates
btrfs-progs-5.2.2 (2019-09-05)
- check:
fix false report of wrong byte count for orphan inodes
option -E was not handled correctly
new check and repair for root item generation
balance: check for full-balance before background fork
mkfs: check that total device size does not overflow 16EiB
dump-tree: print DEV_STATS key type
- other:
new and updated tests
doc fixups and updates
btrfs-progs-5.1 (2019-05-17)
(version 5.0 skipped)
- check:
repair: flush/FUA support to avoid breaking metadata COW
file extents repair no longer relies on data in extent tree
lowmem: fix false error reports about gaps between extents
add inode mode check and repair for various objects
add check for invalid combination of nocow/compressed extents
device scan: new option to forget scanned devices
mkfs: use same chunk size as kernel for initial creation
dev-replace: better report when other exclusive operation is running
help: for syntax errors on command line, print only the relevant messages, not the whole help text
- receive:
new option for quiet mode
on -vv print information about written ranges
fix endless loop with --dump on an invalid stream
defrag: able open files in RO mode (needs kernel support to work)
dump-tree: --block can be specified multiple times
libbtrfsutil: fix: don’t close fd on error in btrfs_util_subvolume_id_fd
- core:
add sync before superblock write
better error handling on the transaction commit path
try to find best copy when reading tree blocks
update backup roots on commit transaction
- other:
fuzz tests pass and are enabled in CI
cleanups
new tests
btrfs-progs-5.1.1 (2019-06-11)
convert and mkfs will try to use optimized crc32c
fi show: accept a file-backed image
fi show: fix possible crash when device is deleted in parallel
- build:
support extra flags for python bindings
separate LDFLAGS for libbtrfsutil
- other:
space reservation fixes or debugging improvements
V0 extent code removed
more tests and cleanups
btrfs-progs-4.x (2019-02-25)
btrfs-progs-4.20 (2019-01-19)
- new feature: metadata uuid
lightweight change of UUID without rewriting all metadata (incompatible change)
done by btrfstune -m/-M
needs kernel support, 5.0+
- image:
fix block groups when restoring from multi-device image
only enlarge result image if it’s a regular file
- check
more device extent checks and fixes
can repair dir item with mismatched hash
mkfs: uuid tree created with proper contents
fix mount point detection due to partial prefix match
- other:
new tests
libbtrfsutil: fix tests if kernel lacks support for new subvolume ioctls
build fixes
doc fixes
- btrfs-progs-4.20.1 (2019-01-23)
libbtrfs: fix build of external tools due to missing symbols
ci: enable library test
- btrfs-progs-4.20.2 (2019-02-25)
ci: use newer distro for builds
dump-super: minor output fixup
revert fix for prefix detection of receive path, this is temporary and unbreaks existing user setups
btrfs-progs-4.19 (2018-11-03)
check: support repair of fs with free-space-tree feature
- core:
port delayed ref infrastructure from kernel
support write to free space tree
dump-tree: new options for BFS and DFS enumeration of b-trees
quota: rescan is now done automatically after ‘assign’
btrfstune: incomplete fix to uuid change
subvol: fix 255 char limit checks
completion: complete block devices and now regular files too
- docs:
ship uncompressed manual pages
btrfsck uses a manual page link instead of symlink
- other
improved error handling
docs
new tests
- btrfs-progs-4.19.1 (2018-12-05)
- build fixes
big-endian builds fail due to bswap helper clashes
‘swap’ macro is too generic, renamed to prevent build failures
- libbtrfs
minor version update to 1.1.0
fix default search to top=0 as documented
rename ‘async’ to avoid future python binding problems
add support for unprivileged subvolume listing ioctls
added tests, API docs
- other
lot of typos fixed
warning cleanups
doc formatting updates
CI tests against zstd 1.3.7
btrfs-progs-4.18 (skipped)
btrfs-progs-4.17 (2018-06-14)
- check
many lowmem mode improvements
properly report qgroup mismatch errors
check symlinks with append/immutable flags
- fi usage
correctly calculate allocated/unallocated for raid10
minor output updates
- mkfs
detect ENOSPC on thinly provisioned devices
fix spurious EEXIST during directory traversal
restore: fix relative path for restore target
dump-tree: print symbolic tree names for backrefs
send: fix regression preventing send -p with subvolumes mounted on “/”
corrupt-tree: refactoring and command line updates
- build
make it work with e2fsprogs < 1.42 again
restore support for autoconf 2.63
detect if -std=gnu90 is supported
- other
new tests
cleanups
- btrfs-progs-4.17.1 (2018-08-06)
- check:
add ability to fix wrong ram_bytes for compressed inline files
beautify progress output
btrfstune: allow to continue uuid change after unclean interruption
- several fuzz fixes:
detect overlapping chunks
chunk loading error handling
don’t crash with unexpected root refs to extents
relax option parsing again to allow mixing options and non-options arguments
fix qgroup rescan status reporting
- build:
drop obsolete dir-test
new configure option to disable building of tools
add compatibility options --disable-static and --disable-shared
- other:
cleanups and preparatory work
new test images
btrfs-progs-4.16 (2018-04-06)
- libbtrfsutil - new LGPL library to wrap userspace functionality
- several ‘btrfs’ commands converted to use it:
properties
filesystem sync
subvolume set-default/get-default/delete/show/sync
python bindings, tests
- build
use configured pkg-config path
CI: add python, musl/clang, built dependencies caching
convert: build fix for e2fsprogs 1.44+
don’t install library links with wrong permissions
- fixes
prevent incorrect use of subvol_strip_mountpoint
dump-super: don’t verify csum for unknown type
convert: fix inline extent creation condition
- check:
lowmem: fix false alert for ‘data extent backref lost for snapshot’
lowmem: fix false alert for orphan inode
lowmem: fix false alert for shared prealloc extents
- mkfs:
add UUID and otime to root of FS_TREE - with the uuid, snapshots will be now linked to the toplevel subvol by the parent UUID
don’t follow symlinks when calculating size
pre-create the UUID tree
fix --rootdir with selinux enabled
dump-tree: add option to print only children nodes of a given block
image: handle missing device for RAID1
- other
new tests
test script cleanups (quoting, helpers)
tool to edit superblocks
updated docs
- btrfs-progs-4.16.1 (2018-04-24)
remove obsolete tools: btrfs-debug-tree, btrfs-zero-log, btrfs-show-super, btrfs-calc-size
sb-mod: new debugging tool to edit superblock items
mkfs: detect if thin-provisioned device does not have enough space
check: don’t try to verify checksums on metadata dump images
build: fail documentation build if xmlto is not found
build: fix build of btrfs.static
btrfs-progs-4.15 (2018-02-01)
mkfs --rootdir reworked, does not minimize the final image but can be still done using a new option --shrink
fix allocation of system chunk, don’t allocate from the reserved area
- other
new and updated tests
cleanups, refactoring
doc updates
- btrfs-progs-4.15.1 (2018-02-16)
- build
fix build on musl
support asciidoctor for doc generation
- cleanups
sync some code with kernel
check: move code to own directory, split to more files
- tests
more build tests in travis
tests now pass with asan and ubsan
testsuite can be exported and used separately
btrfs-progs-4.14 (2017-11-16)
build: libzstd now required by default
check: more lowmem mode repair enhancements
subvol set-default: also accept path
prop set: compression accepts no/none, same as “”
filesystem usage: enable for filesystem on top of a seed device
rescue: new command fix-device-size
- other
new tests
cleanups and refactoring
doc updates
- btrfs-progs-4.14.1 (2018-01-05)
dump-tree: print times of root items
check: fix several lowmem mode bugs
convert: fix rollback after balance
- other
new and updated tests, enabled lowmem mode in CI
docs updates
fix travis CI build
build fixes
cleanups
btrfs-progs-4.13 (2017-09-08)
convert: reiserfs support
check: new option --force to allow check of a mounted filesystem (no repair)
mkfs: --rootdir will now copy special files
dump-tree: minor output changes
inspect rootid: accept file as argument
dev usage: don’t calculate slack space for missing devices
fi du: don’t print error on EMPTY_SUBVOL (inode number 2)
- build:
fixed support for sanitization features on gcc (tsan, asan, ubsan)
fix PIE build
- other:
misc cleanups and stability fixes
travis CI enhancements
new tests, fuzzed images
testsuite cleanups
- btrfs-progs-4.13.1 (2017-09-25)
image: speed up generating the sanitized names, do not generate unprintable chars
completion: add missing commands, better mount point detection
restore: add zstd support; libzstd detected automatically, will be requested by default in the future, or can be configured out
- other:
misc fixes found by sparse
doc enhancements, ioctl manual page started
updated and new tests
build fixes
- btrfs-progs-4.13.2 (2017-10-06)
- subvol list:
don’t list toplevel subvolume among deleted (broken since 4.8.3)
minor adjustments of uuid print format
- subvol delete:
fix swapped behaviour of --commit-each and --commit-after
fix potentially lost sync if subvolumes are from different filesystems
check: add cache for metadata blocks, should improve performance
- other:
new tests, testsuite updates
doc updates
cleanups
- btrfs-progs-4.13.3 (2017-10-16)
check: fix --force, wrong check for a mounted block device
build: fix --with-convert parsing
subvol list: don’t list TOPLEVEL
other: update tests
btrfs-progs-4.12 (2017-07-26)
subvol show: new options --rootid, --uuid to show subvol by the given spec
convert: progress report fixes, found by tsan
image: progress report fixes, found by tsan
fix infinite looping in find-root, or when looking for free extents
- other:
code refactoring
docs updates
build: ThreadSanitizer support
tests: stricter checks for mounted filesystem
- btrfs-progs-4.12.1 (2017-08-25)
- build:
fix cross-compilation
use gnu90 explicitly
dump-tree: more relaxed checks so -b can print block on a damaged fs
convert: fix the 1MB range exclusion
check: more dir_item hash checks
- other
added missing getopt spec for some options
doc fixes
cleanups
test updates
btrfs-progs-4.11 (2017-05-18)
receive: fix handling empty stream with -e (multi-stream)
send dump: fix printing long file names
stability fixes for: dump-super, print-tree, check
option parser updates: global options are parsed before the subcommand name (old xfstests will fail)
new and updated tests
documentation updates
- btrfs-progs-4.11.1 (2017-06-30)
image: restoring from multiple devices
dev stats: make --check option work
check: fix false alert with extent hole on a NO_HOLE filesystem
check: lowmem mode, fix false alert in case of mixed inline and compressed extent
convert: work with large filesystems (many TB)
convert: fix overwriting of eb header flags
convert: do not clear NODATASUM flag in inodes when run with --no-datasum
docs updates
build: sync Android.mk with Makefile
- tests:
new tests
fix 008 and 009, shell quotation mistake
btrfs-progs-4.10 (2017-03-08)
send: dump output fixes: missing newlies
check: several fixes for the lowmem mode, improved error reporting
- build
removed some library deps for binaries that not use them
ctags, cscope
split Makefile to the autotool generated part and the rest, not needed to autogen.sh after adding a file
shared code: sync easy parts with kernel sources
- other
lots of cleanups
source file reorganization: convert, mkfs, utils
lots of spelling fixes in docs, other updates
more tests
- btrfs-progs-4.10.1 (2017-03-17)
receive: handle subvolume in path clone
convert: rollback fixed (rewrite was needed to address previous design issues)
build: fix build of 3rd party tools, missing <linux/sizes.h>
dump-tree: print log trees
- other
new and updated tests
- btrfs-progs-4.10.2 (2017-03-31)
check: lowmem mode fix for false alert about lost backrefs
convert: minor bugfix
library: fix build, missing symbols, added tests
btrfs-progs-4.9 (2016-12-23)
check: many lowmem mode updates
send: use splice syscall to copy buffer from kernel
receive: new option to dump the stream in textual form
- convert:
move sources to own directory
prevent accounting of blocks beyond end of the device
make it work with 64k sectorsize
mkfs: move sources to own directory
defrag: warns if directory used without -r
- dev stats:
new option to check stats for non-zero values
add long option for -z
library: version bump to 0.1.2, added subvol_uuid_search2
- other:
cleanups
docs updates
- btrfs-progs-4.9.1 (2017-01-27)
- check:
use correct inode number for lost+found files
lowmem mode: fix false alert on dropped leaf
size reports: negative numbers might appear in size reports during device deletes (previously in EiB units)
mkfs: print device being trimmed
defrag: v1 ioctl support dropped
quota: print message before starting to wait for rescan
qgroup show: new option to sync before printing the stats
- other:
corrupt-block enhancements
backtrace and co. cleanups
doc fixes
btrfs-progs-4.8 (2016-10-05)
error handling improvements all over the place
new fuzzed images, test updates
doc fixups
minor cleanups and improvements
kernel library helpers moved to own directory
qgroup: fix regression leading to incorrect status after check, introduced in 4.7
- btrfs-progs-4.8.1 (2016-10-12)
32bit builds fixed
build without backtrace support fixed
- btrfs-progs-4.8.2 (2016-10-26)
convert: also convert file attributes
convert: fix wrong tree block alignment for unaligned block group
check: quota verify fixes, handle reloc tree
build: add stub for FIEMAP_EXTENT_SHARED, compiles on ancient kernels
build: add stub for BUILD_ASSERT when ioctl.h is included
dump-tree: don’t crash on unrecognized tree id for -t
- tests:
add more ioctl tests
convert: more symlink tests, attribute tests
quota verify for reloc tree
other cleanups
- btrfs-progs-4.8.3 (2016-11-11)
- check:
support for clearing space cache (v1)
size reduction of inode backref structure
- send:
fix handling of multiple snapshots (-p and -c options)
transfer buffer increased (should reduce number of context switches)
reuse existing file for output (-f), eg. when root cannot create files (NFS)
- dump-tree:
print missing items for various structures
new: dev stats, balance status item
sync key names with kernel (the persistent items)
subvol show: now able to print the toplevel subvolume -- the creation time might be wrong though
- mkfs:
store the creation time of toplevel root inode
print UUID in the summary
build: travis CI for devel
- other:
lots of cleanups and refactoring
switched to on-stack path structure
fixes from coverity, asan, ubsan
new tests
updates in testing infrastructure
fixed convert test 005
- btrfs-progs-4.8.4 (2016-11-25)
check: support for clearing space cache v2 (free-space-tree)
- send:
more sanity checks (with tests), cleanups
fix for fstests/btrfs/038 and btrfs/117 failures
- build:
fix compilation of standalone ioctl.h, pull NULL definition
fix library link errors introduced in 4.8.3
- tests:
add more fuzzed images from bugzilla
add bogus send stream checks
fixups and enhancements for CI environment builds
misc refinements and updates of testing framework
- other:
move sources for btrfs-image to own directory
deprecated and not build by default: btrfs-calc-size, btrfs-show-super
docs updates
- btrfs-progs-4.8.5 (2016-11-30)
receive: fix detection of end of stream (error reported even for valid streams)
- other:
added test for the receive bug
fix linking of library-test
btrfs-progs-4.7 (2016-07-29)
convert: fix creating discontig extents
check: speed up traversing heavily reflinked extents within a file
check: verify qgroups of higher levels
check: repair can now fix wrong qgroup numbers
balance: new option to run in the background
defrag: default extent target size changed to 32MiB
du: silently skip non-btrfs dirs/files
documentation updates: btrfs(5), btrfs(8), balance, subvolume, scrub, filesystem, convert
- bugfixes:
unaligned access (reported for sparc64) in raid56 parity calculations
use /bin/bash
other stability fixes and cleanups
more tests
- btrfs-progs-4.7.1 (2016-08-25)
- check:
new optional mode: optimized for low memory usage (memory/io tradeoff)
--mode=lowmem, not default, still considered experimental
does not work with --repair yet
convert: regression fix, ext2_subvol/image rw permissions
- mkfs/convert:
two-staged creation, partially created filesystem will not be recognized
improved error handling (fewer BUG_ONs)
convert: preparation for more filesystems to convert from
documentation updates: quota, qgroup
- other
message updates
more tests
more build options, enhanced debugging
- btrfs-progs-4.7.2 (2016-09-05)
- check:
urgent fix: false report of backref mismatches; do not --repair last unaffected version 4.6.1 (code reverted to that state)
- fuzzing and fixes
added more sanity checks for various structures
testing images added
build: udev compatibility: do not install .rules on version < 190
- other:
dump-super: do not crash on garbage value in csum_type
minor improvements in messages and help strings
- documentation:
filesystem features
- btrfs-progs-4.7.3 (2016-09-21)
fixed free space tree compat status
check: low-mem mode: handle partially dropped snapshots
dump-super: consolidate options for superblock copy
tree-stats: check mount status
subvol delete: handle verbosity option
defrag: print correct error string
mkfs: fix reading rotational status
- other:
UBSAN build option
documentation updates
enhanced tests: convert, fuzzed images, more tools to run on fuzzed images
btrfs-progs-4.6 (2016-06-10)
- convert - major rewrite:
fix a long-standing bug that led to mixing data blocks into metadata block groups
the workaround was to do full balance after conversion, which was recommended practice anyway
explicitly set the lowest supported version of e2fstools to 1.41
provide and install udev rules file that addresses problems with device mapper devices, renames after removal
send: new option: quiet
dev usage: report slack space (device size minus filesystem area on the dev)
image: support DUP
build: short options to enable debugging builds
- other:
code cleanups
build fixes
more tests and other enhancements
- btrfs-progs-4.6.1 (2016-06-24)
filesystem resize: negative resize argument accepted again
qgroup rescan: fix skipping when rescan is in progress
mkfs: initialize stripesize to correct value
testsuite updates, mostly convert tests
- documentation updates
btrfs-device, btrfs-restore manual pages enhanced
misc fixups
btrfs-progs-4.5 (2016-03-20)
- New/moved commands:
btrfs-show-super -> btrfs inspect-internal dump-super
btrfs-debug-tree -> btrfs inspect-internal dump-tree
- New commands:
btrfs filesystem du - calculate disk usage, including shared extents
- Enhancements:
device delete - delete by id (needs kernel support, not merged to 4.6)
check - new option to specify chunk root
debug-tree/dump-tree - option -t understands human readable name of the tree (along numerical ids)
btrfs-debugfs - can dump block group information
- Bugfixes:
all commands should accept the option separator “--”
several fixes in device scan
restore works on filesystems with sectorsize > 4k
debug-tree/dump-tree - print compression type as string
subvol sync: fix crash, memory corruption
argument parsing fixes: subvol get-default, qgroup create/destroy/ assign, inspect subvolid-resolve
check for block device or regular file in several commands
- Other:
documentation updates
manual pages for the moved tools now point to btrfs-filesystem
testsuite updates
- btrfs-progs-4.5.1 (2016-03-31)
mkfs: allow DUP on multi-device filesystems
bugfixes: build fixes, assorted other fixes
- btrfs-progs-4.5.2 (2016-05-02)
new/moved command: btrfs-calc-stats -> btrfs inspect tree-stats
check: fix false alert for metadata blocks crossing stripe boundary
check: catch when qgroup numbers mismatch
check: detect running quota rescan and report mismatches
balance start: add safety delay before doing a full balance
filesystem sync: is now silent
filesystem show: don’t miss filesystems with partially matching uuids
dev ready: accept only one argument for device
dev stats: print “devid:N” for a missing device instead of “(null)”
- other:
lowest supported version of e2fsprogs is 1.41
minor cleanups, test updates
- btrfs-progs-4.5.3 (2016-05-11)
ioctl: fix unaligned access in buffer from TREE_SEARCH; might cause SIGBUS on architectures that do not support unaligned access and do not performa any fixups
improved validation checks of superblock and chunk-related structures
subvolume sync: fix handling of -s option
balance: adjust timing of safety delay countdown with --full-balance
rescue super-recover: fix reversed condition check
check: fix bytes_used accounting
documentation updates: mount options, scrub, send, receive, select-super, check, mkfs
testing: new fuzzed images, for superblock and chunks
btrfs-progs-4.4 (2016-01-18)
- User visible changes:
mkfs.btrfs --data dup
People asked about duplicating data on a single device for a long time. There are no technical obstacles preventing that, so it got enabled with a warning about potential dangers when the device will not do the duplicated copies. See mkfs.btrfs section DUP PROFILES ON A SINGLE DEVICE.
- support balance filters added/enhanced in linux 4.4
usage=min..max -- enhanced to take range
stripes=min..max -- new, filter by stripes for raid0/10/5/6
limit=min..max -- enhanced to take range
Note: due to backward compatibility, the range maximum for ‘usage’ is not inclusive as for the others, to keep the same behaviour as usage=N .
manual pages enhanced (btrfs, mkfs, mount, filesystem, balance)
error messages updates, rewordings -- some fstests may break due to that
added support for free-space-tree implementation of space cache -- this requires kernel 4.5 and is not recommended for non-developers yet
btrfs filesystem usage works with mixed blockgroups
- Other:
installation to /usr/local -- this has unintentionally changed during conversion to autotools in 3.19
check: fix a false alert where extent record has wrong metadata flag
improved stability on fuzzed/crafted images when reading sys array in superblock
build: the ‘ar’ tool is properly detected during cross-compilation
debug-tree: option -t understands ids for tree root and chunk tree
preparatory work for btrfs-convert rewrite
sparse, gcc warning fixes
more memory allocation failure handling
cleanups
more tests
- Bugfixes:
chunk recovery: fix floating point exception
chunk recovery: endianity bugfix during rebuild
mkfs with 64K pages and nodesize reported superblock checksum mismatch
check: properly reset nlink of multi-linked file
- btrfs-progs-4.4.1 (2016-02-26)
find-root: don’t skip the first chunk
free-space-tree compat bits fix
build: target symlinks
documentation updates
test updates
btrfs-progs-4.3 (2015-11-06)
- mkfs
mixed mode is not forced for filesystems smaller than 1GiB
mixed mode broken with mismatching sectorsize and nodesize, fixed
print version info earlier
print devices sorted by id
do not truncate target image with --rootsize
- filesystem usage:
don’t print global block reserve
print device id
minor output tuning
other cleanups
- calc-size:
div-by-zero fix on an empty filesystem
fix crash
- bugfixes:
more superblock sanity checks
consistently round size of all devices down to sectorsize
misc leak fixes
convert: don’t try to rollback with a half-deleted ext2_saved subvolume
- other:
check: add progress indicator
scrub: enhanced error message
show-super: read superblock from a given offset
add README
docs: update manual page for mkfs.btrfs, btrfstune, balance, convert and inspect-internal
build: optional build with more warnings (W=…)
build: better support for static checkers
build: html output of documentation
pretty-print: last_snapshot for root_item
pretty-print: stripe dev uuid
error reporting wrappers, introduced and example use
refactor open_file_or_dir
other docs and help updates
- testing:
test for nodes crossing stripes
test for broken ‘subvolume sync’
basic tests for mkfs, raid option combinations
basic tests for fuzzed images (check)
command instrumentation (eg valgrind)
print commands if requested
add README for tests
- btrfs-progs-4.3.1 (2015-11-16)
- fixes
device delete: recognize ‘missing’ again
mkfs: long names are not trimmed when doing ssd check
support partitioned loop devices
- other
replace several mallocs with on-stack variables
more memory allocation failure handling
add tests for bugs fixed
cmd-device: switch to new message printing helpers
minor code cleanups
btrfs-progs-4.2 (2015-09-03)
- enhancements:
mkfs: do not create extra single chunks on multiple devices
resize: try to guess the minimal size, ‘inspect min-dev-size’
qgroup assign: add option to schedule rescan
chunk-recover: be more verbose about the scanning process
- fixes:
- check:
find stripes crossing stripe boundary -- created by convert
print correct range for file hole when there are no extents and learn how to fix it
replace: more sanity checks
convert: concurrency fixes related to reporting progress
find-root: option -a will not skip the current root anymore
subvol list: fix occasional crash
do not create stripes crossing stripe boundary
- build:
fixes for musl libc
preliminary support for android (not working yet, more code changes needed)
new EXTRA_CFLAGS and EXTRA_LDFLAGS
- other:
lots of cleanups
tests: lots of updates, new tests, framework improvements
documentation updates
debugging: print-tree shows stripe length
- btrfs-progs-4.2.1 (2015-09-20)
- fix an off-by-one error in cross-stripe boundary check
if nodesize was 64k, any metadata block was reported as crossing, this leads to mkfs failure for example due to “no free blocks found”
for other nodesizes, if the end of the metadata block was 64k aligned, it was incorrectly reported by fsck
convert: don’t write uninitialized data to image
- image:
don’t loop with option -t0
don’t create threads if compression is not requested
other: minor cleanups
- btrfs-progs-4.2.2 (2015-10-05)
filesystem label: use fallback if the label ioctl is not available
convert: check nodesize constraints against commandline features (-O)
scrub: report status ‘running’ until all devices are finished
device scanning might crash in some scenarios
filesystem usage: print summary for non-root users
- btrfs-progs-4.2.3 (2015-10-19)
subvol sync: make it actually work again: it’s been broken since 4.1.2, due to a reversed condition it returned immediately instead of waiting
scanning: do not scan already discovered filesystems (minor optimization)
convert: better error message in case the filesystem is not finalized
restore: off-by-one symlink path check fix
btrfs-progs-4.1 (2015-06-22)
- Bugfixes:
fsck.btrfs: no bash-isms
bugzilla 97171: invalid memory access (with tests)
- receive:
cloning works with --chroot
capabilities not lost
mkfs: do not try to register bare file images
option --help accepted by the standalone utilities
- Enhancements:
corrupt block: ability to remove csums
- mkfs:
warn if metadata redundancy is lower than for data
options to make the output quiet (only errors)
mixed case names of raid profiles accepted
rework the output:
more comprehensive, ‘key: value’ format
- subvol:
- show:
print received uuid
update the output
new options to specify size units
sync: grab all deleted ids and print them as they’re removed, previous implementation only checked if there are any to be deleted - change in command semantics
scrub: print timestamps in days HMS format
- receive:
can specify mount point, do not rely on /proc
can work inside subvolumes
send: new option to send stream without data (NO_FILE_DATA)
convert: specify incompat features on the new fs
- qgroup:
show: distinguish no limits and 0 limit value
limit: ability to clear the limit
help for ‘btrfs’ is shorter, 1st level command overview
debug tree: print key names according to their C name
- New:
rescue zero-log
- btrfsune:
rewrite uuid on a filesystem image
new option to turn on NO_HOLES incompat feature
- Deprecated:
standalone btrfs-zero-log
- Other:
- testing framework updates
uuid rewrite test
btrfstune feature setting test
zero-log tests
more testing image formats
manual page updates
ioctl.h synced with current kernel uapi version
convert: preparatory works for more filesystems (reiserfs pending)
use static buffers for path handling where possible
add new helpers for send uilts that check memory allocations, switch all users, deprecate old helpers
Makefile: fix build dependency generation
map-logical: make it work again
- btrfs-progs-4.1.1 (2015-07-10) -- Do not use this version!
- Bugfixes:
defrag: threshold overflow fix
- fsck:
check if items fit into the leaf space
fix wrong nbytes
- mkfs:
create only desired block groups for single device
preparatory work for fix on multiple devices
- Enhancements:
new alias for ‘device delete’: ‘device remove’
- Other:
fix compilation on old gcc (4.3)
documentation updates
debug-tree: print nbytes
test: image for corrupted nbytes
corrupt-block: let it kill nbytes
- btrfs-progs-4.1.2 (2015-07-14)
urgent bugfix: mkfs creates invalid filesystem, must be recreated
btrfs-progs-4.0 (2015-04-29)
- resize:
don’t accept file as an argument (it’s confusing)
print better error message in case of an error
restore: optionally restore metadata (time, mode, uid/gid)
receive: optionally enforce chroot
new rescue subcommand ‘zero-log’, same as btrfs-zero-log, but now also part of the main utility
- check:
free space checks match kernel, fixes incorrect reports
convert: fix setting of checksum bit if --no-datasum is used
fsck.btrfs: don’t print messages
fix quota rescan on PPC64 (mangled ioctl number)
test updates
documentation: files renamed to .asciidoc, misc fixups
- btrfs-progs-4.0.1 (2015-05-20)
- restore:
can restore symlinks, new option --symlinks
long option variants added
convert: dropped dependency on acl.h header and libacl is not required for build
fix for ‘check’ crash
device remove error message fix
preparatory works for fsid change
btrfs-progs-3.x (2015-03-25)
btrfs-progs-3.19 (2015-03-11)
build converted to autotools
- btrfs-image
restore can now run in parallel threads
fixed restore of multiple image from multiple devices onto a single dev
introduced metadump v2
check: make --init-csum-tree and --init-extent-tree work together
find-new: option to search through all metadata even if a root was already found
convert: show progress by default, can be turned off
corrupt-block: option to work on a specific root
bash completion script for all subcommands
- btrfs-progs-3.19.1 (2015-03-25)
- convert:
new option to specify metadata block size
--no-progress actually works
restore: properly handle the page boundary corner case
- build fixes:
missing macro from public header, BTRFS_BUILD_VERSION
wrong handling of --enable-convert
filesystem usage: reports correct space for degraded mounts
- other:
mkfs: help string updates
completion: added ‘usage’ subcommands
cleanups in qgroup code, preparatory work
btrfs-progs-3.18 (2014-12-30)
mkfs - skinny-metadata feature is now on by default, first introduced in kernel 3.10
filesystem usage - give an overview of fs usage in a way that’s more comprehensible than existing ‘filesystem df’
device usage - more detailed information about per-device allocations
- check
option to set a different tree root byte number
ability to link lost files to lost+found, caused by a recent kernel bug
repair of severely corrupted fs (use with care)
convert - option to show progress
subvol create - print the commit mode inline, print the global mode only if --verbose
other updates: musl-libc support, coverity bugfixes, new test images, documentation
- btrfs-progs-3.18.1 (2015-01-09)
minor fixes
documentation updates
- btrfs-progs-3.18.2 (2015-01-27)
qgroup show: print human readable sizes, options to say otherwise
check: new option to explicitly say no to writes
mkfs: message about trimming is not printed to stderr
filesystem show: fixed return value
tests: new infrastructure
btrfstune: force flag can be used together with seeding option
backtrace support is back
getopt cleanups
doc and help updates
btrfs-progs-3.17 (2014-10-17)
check: --init-csum-tree actually does something useful, rebuilds the whole csum tree
/dev scanning for btrfs devices is gone
/proc/partitions scanning is gone, blkid is used exclusively
new subcommand subvolume sync
filesystem df: new options to set unit format
convert: allow to copy label from the origin, or specify a new one
- btrfs-progs-3.17.1 (2014-11-04)
filesystem df: argument handling
fix linking with libbtrfs
replace: better error reporting
filesystem show: fixed stall if run concurrently with balance
check: fixed argument parsing for --subvol-extents
filesystem df: SI prefixes corrected
- btrfs-progs-3.17.2 (2014-11-19)
- check improvements
add ability to replace missing dir item/dir indexes
fix missing inode items
create missing root dirid
corrupt block: enhancements for testing fsck
zero-log: able to reset a fs with bogus log tree pointer (bug_72151)
- btrfs-progs-3.17.3 (2014-12-04)
convert: fix conversion of sparse ext* filesystems
show: resolve to the correct path
fsck: more verbose error for root dir problems
btrfs-progs-3.16 (2014-08-26)
mkfs: new option to specify UUID, drop experimental notice
check: new option to verify quotas, reduced memory requirements, new option to print extent sharing
restore: check length before decompression, more error handling, option to loop during restoring
balance: new filter ‘limit’
recover: allow to read all sb copies
btrfstune: new option to force dangerous changes
receive: new option to limit number of errors
show-super: skip unrecognized sb, add option to force
debug-tree: print tree by id
documentation updates
- btrfs-progs-3.16.1 (2014-09-15)
print GlobalReserve in filesystem df output
new option -R in subvol list
library version defines
static build is fixed
build without documentation is possible
- btrfs-progs-3.16.2 (2014-10-01)
a few fixes in fsck and image tools
btrfs-progs-3.15 (skipped)
btrfs-progs-3.14 (2014-04-06)
fsck: fixes and enhancements to --init-extent-tree mode
fsck: chunk-recover updates
scrub: add force option -f
send: check if subvolumes are read-only
subvol delete: add options to affect commit behaviour
btrfs: add property command group
restore: add dry-run option
restore: fix restoring of compressed files
mkfs: support for no-holes feature
mkfs: option -r deals with hardlinks and relative paths
mkfs: discard phase is interruptible
documentation updates
- btrfs-progs-3.14.1 (2014-04-18)
properties: fix handling of option -t
restore: fix reading of compressed extents
minor code and doc updates
- btrfs-progs-3.14.2 (2014-05-29)
documentation is now written in asciidoc and there are manpages for each subcommand
misc bugfixes
btrfs-progs-3.13 (skipped)
btrfs-progs-3.12 (2013-11-25)
announcement, tarballs
first release after 0.19 (2009/06) with a lot of changes