16cf686696794ec093d0c1aba7305998be7ccf94
[platform/upstream/btrfs-progs.git] / CHANGES
1 btrfs-progs-4.6 (2016-06-10)
2   * convert - major rewrite:
3     * fix a long-standing bug that led to mixing data blocks into metadata block
4       groups
5     * the workaround was to do full balance after conversion, which was
6       recommended practice anyway
7     * explicitly set the lowest supported version of e2fstools to 1.41
8   * provide and install udev rules file that addresses problems with device
9     mapper devices, renames after removal
10   * send: new option: quiet
11   * dev usage: report slack space (device size minus filesystem area on the dev)
12   * image: support DUP
13   * build: short options to enable debugging builds
14   * other:
15     * code cleanups
16     * build fixes
17     * more tests and other enhancements
18
19 btrfs-progs-4.5.3 (2016-05-11)
20   * ioctl: fix unaligned access in buffer from TREE_SEARCH; might cause SIGBUS
21     on architectures that do not support unaligned access and do not performa
22     any fixups
23   * improved validation checks of superblock and chunk-related structures
24   * subvolume sync: fix handling of -s option
25   * balance: adjust timing of safety delay countdown with --full-balance
26   * rescue super-recover: fix reversed condition check
27   * check: fix bytes_used accounting
28   * documentation updates: mount options, scrub, send, receive, select-super,
29     check, mkfs
30   * testing: new fuzzed images, for superblock and chunks
31
32 btrfs-progs-4.5.2 (2016-05-02)
33   * new/moved command: btrfs-calc-stats -> btrfs inspect tree-stats
34   * check: fix false alert for metadata blocks crossing stripe boundary
35   * check: catch when qgroup numbers mismatch
36   * check: detect running quota rescan and report mismatches
37   * balance start: add safety delay before doing a full balance
38   * fi sync: is now silent
39   * fi show: don't miss filesystems with partially matching uuids
40   * dev ready: accept only one argument for device
41   * dev stats: print "devid:N" for a missing device instead of "(null)"
42   * other:
43     * lowest supported version of e2fsprogs is 1.41
44     * minor cleanups, test updates
45
46 btrfs-progs-4.5.1 (2016-03-31)
47   * mkfs: allow DUP on multi-device filesystems
48   * bugfixes: build fixes, assorted other fixes
49
50 btrfs-progs-4.5 (2016-03-20)
51   New/moved commands:
52     * btrfs-show-super -> btrfs inspect-internal dump-super
53     * btrfs-debug-tree -> btrfs inspect-internal dump-tree
54
55   New commands:
56     * btrfs fi du - calculate disk usage, including shared extents
57
58   Enhancements:
59     * device delete - delete by id (needs kernel support, not merged to
60       4.6)
61     * check - new option to specify chunk root
62     * debug-tree/dump-tree - option -t understands human readable name of
63       the tree (along numerical ids)
64     * btrfs-debugfs - can dump block group information
65
66   Bugfixes:
67     * all commands should accept the option separator "--"
68     * several fixes in device scan
69     * restore works on filesystems with sectorsize > 4k
70     * debug-tree/dump-tree - print compression type as string
71     * subvol sync: fix crash, memory corruption
72     * argument parsing fixes: subvol get-default, qgroup create/destroy/
73       assign, inspect subvolid-resolve
74     * check for block device or regular file in several commands
75
76   Other:
77     * documentation updates
78     * manual pages for the moved tools now point to btrfs-filesystem
79     * testsuite updates
80
81 btrfs-progs-4.4.1 (2016-02-26)
82   * find-root: don't skip the first chunk
83   * free-space-tree compat bits fix
84   * build: target symlinks
85   * documentation updates
86   * test updates
87
88 btrfs-progs-4.4 (2016-01-18)
89   User visible changes:
90     * mkfs.btrfs --data dup
91
92   People asked about duplicating data on a single device for a long time. There
93   are no technical obstacles preventing that, so it got enabled with a warning
94   about potential dangers when the device will not do the duplicated copies. See
95   mkfs.btrfs section DUP PROFILES ON A SINGLE DEVICE.
96
97     * support balance filters added/enhanced in linux 4.4
98       * usage=min..max -- enhanced to take range
99       * stripes=min..max -- new, filter by stripes for raid0/10/5/6
100       * limit=min..max -- enhanced to take range
101   Note: due to backward compatibility, the range maximum for 'usage' is not
102   inclusive as for the others, to keep the same behaviour as usage=N .
103
104     * manual pages enhanced (btrfs, mkfs, mount, filesystem, balance)
105     * error messages updates, rewordings -- some fstests may break due to that
106     * added support for free-space-tree implementation of space cache -- this
107       requires kernel 4.5 and is not recommended for non-developers yet
108     * btrfs filesystem usage works with mixed blockgroups
109
110   Other:
111     * installation to /usr/local -- this has unintentionally changed during
112       conversion to autotools in 3.19
113     * check: fix a false alert where extent record has wrong metadata flag
114     * improved stability on fuzzed/crafted images when reading sys array in
115       superblock
116     * build: the 'ar' tool is properly detected during cross-compilation
117     * debug-tree: option -t understands ids for tree root and chunk tree
118     * preparatory work for btrfs-convert rewrite
119     * sparse, gcc warning fixes
120     * more memory allocation failure handling
121     * cleanups
122     * more tests
123
124   Bugfixes:
125     * chunk recovery: fix floating point exception
126     * chunk recovery: endianity bugfix during rebuild
127     * mkfs with 64K pages and nodesize reported superblock checksum mismatch
128     * check: properly reset nlink of multi-linked file
129
130 btrfs-progs-4.3.1 (2015-11-16)
131   * fixes
132     * device delete: recognize 'missing' again
133     * mkfs: long names are not trimmed when doing ssd check
134     * support partitioned loop devices
135   * other
136     * replace several mallocs with on-stack variables
137     * more memory allocation failure handling
138     * add tests for bugs fixed
139     * cmd-device: switch to new message printing helpers
140     * minor code cleanups
141
142 btrfs-progs-4.3 (2015-11-06)
143   * mkfs
144     * mixed mode is not forced for filesystems smaller than 1GiB
145     * mixed mode broken with mismatching sectorsize and nodesize, fixed
146     * print version info earlier
147     * print devices sorted by id
148     * do not truncate target image with --rootsize
149   * fi usage:
150     * don't print global block reserve
151     * print device id
152     * minor output tuning
153     * other cleanups
154   * calc-size:
155     * div-by-zero fix on an empty filesystem
156     * fix crash
157   * bugfixes:
158     * more superblock sanity checks
159     * consistently round size of all devices down to sectorsize
160     * misc leak fixes
161     * convert: don't try to rollback with a half-deleted ext2_saved
162       subvolume
163   * other:
164     * check: add progress indicator
165     * scrub: enhanced error message
166     * show-super: read superblock from a given offset
167     * add README
168     * docs: update manual page for mkfs.btrfs, btrfstune, balance,
169       convert and inspect-internal
170     * build: optional build with more warnings (W=...)
171     * build: better support for static checkers
172     * build: html output of documentation
173     * pretty-print: last_snapshot for root_item
174     * pretty-print: stripe dev uuid
175     * error reporting wrappers, introduced and example use
176     * refactor open_file_or_dir
177     * other docs and help updates
178   * testing:
179     * test for nodes crossing stripes
180     * test for broken 'subvolume sync'
181     * basic tests for mkfs, raid option combinations
182     * basic tests for fuzzed images (check)
183     * command intrumentation (eg valgrind)
184     * print commands if requested
185     * add README for tests
186
187 btrfs-progs-4.2.3 (2015-10-19)
188   * subvol sync: make it actually work again: it's been broken since 4.1.2,
189     due to a reversed condition it returned immediately instead of waiting
190   * scanning: do not scan already discovered filesystems (minor optimization)
191   * convert: better error message in case the filesystem is not finalized
192   * restore: off-by-one symlink path check fix
193
194 btrfs-progs-4.2.2 (2015-10-05)
195   * fi label: use fallback if the label ioctl is not available
196   * convert: check nodesize constraints against commandline features (-O)
197   * scrub: report status 'running' until all devices are finished
198   * device scanning might crash in some scenarios
199   * fi usage: print summary for non-root users
200
201 btrfs-progs-4.2.1 (2015-09-20)
202   * fix an off-by-one error in cross-stripe boundary check
203     * if nodesize was 64k, any metadata block was reported as crossing,
204       this leads to mkfs failure for example due to "no free blocks
205       found"
206     * for other nodesizes, if the end of the metadata block was 64k
207       aligned, it was incorrectly reported by fsck
208   * convert: don't write uninitialized data to image
209   * image:
210     * don't loop with option -t0
211     * don't create threads if compression is not requested
212   * other: minor cleanups
213
214 btrfs-progs-4.2 (2015-09-03)
215   * enhancements:
216     * mkfs: do not create extra single chunks on multiple devices
217     * resize: try to guess the minimal size, 'inspect min-dev-size'
218     * qgroup assign: add option to schedule rescan
219     * chunk-recover: be more verbose about the scanning process
220   * fixes:
221     * check:
222         * find stripes crossing stripe boundary -- created by convert
223         * print correct range for file hole when there are no extents
224           and learn how to fix it
225     * replace: more sanity checks
226     * convert: concurrency fixes related to reporting progress
227     * find-root: option -a will not skip the current root anymore
228     * subvol list: fix occasional crash
229     * do not create stripes crossing stripe boundary
230   * build:
231     * fixes for musl libc
232     * preliminary support for android (not working yet, more code changes
233       needed)
234     * new EXTRA_CFLAGS and EXTRA_LDFLAGS
235   * other:
236     * lots of cleanups
237     * tests: lots of updates, new tests, framework improvements
238     * documentation updates
239     * debugging: print-tree shows stripe length
240
241 btrfs-progs-4.1.2 (2015-07-14)
242   * urgent bugfix: mkfs creates invalid filesystem, must be recreated
243
244 btrfs-progs-4.1.1 (2015-07-10) -- Do not use this version!
245   Bugfixes:
246     * defrag: threshold overflow fix
247     * fsck:
248       * check if items fit into the leaf space
249       * fix wrong nbytes
250     * mkfs:
251       * create only desired block groups for single device
252       * preparatory work for fix on multiple devices
253   Enhancements:
254     * new alias for 'device delete': 'device remove'
255   Other:
256     * fix compilation on old gcc (4.3)
257     * documentation updates
258     * debug-tree: print nbytes
259     * test: image for corrupted nbytes
260     * corrupt-block: let it kill nbytes
261
262 btrfs-progs-4.1 (2015-06-22)
263   Bugfixes:
264     * fsck.btrfs: no bash-isms
265     * bugzilla 97171: invalid memory access (with tests)
266     * receive:
267       * cloning works with --chroot
268       * capabilities not lost
269     * mkfs: do not try to register bare file images
270     * option --help accepted by the standalone utilities
271     
272   Enhancements:
273     * corrupt block: ability to remove csums
274     * mkfs:
275       * warn if metadata redundancy is lower than for data
276       * options to make the output quiet (only errors)
277       * mixed case names of raid profiles accepted
278       * rework the output:
279       * more comprehensive, 'key: value' format
280     * subvol:
281       * show:
282         * print received uuid
283         * update the output
284         * new options to specify size units
285       * sync: grab all deleted ids and print them as they're removed,
286         previous implementation only checked if there are any to be
287         deleted - change in command semantics
288     * scrub: print timestamps in days HMS format
289     * receive:
290       * can specify mount point, do not rely on /proc
291       * can work inside subvolumes
292     * send: new option to send stream without data (NO_FILE_DATA)
293     * convert: specify incompat features on the new fs
294     * qgroup:
295       * show: distinguish no limits and 0 limit value
296       * limit: ability to clear the limit
297     * help for 'btrfs' is shorter, 1st level command overview
298     * debug tree: print key names according to their C name
299
300   New:
301     * rescue zero-log
302     * btrfsune:
303       * rewrite uuid on a filesystem image
304       * new option to turn on NO_HOLES incompat feature
305
306   Deprecated:
307     * standalone btrfs-zero-log
308
309   Other:
310     * testing framework updates
311       * uuid rewrite test
312       * btrfstune feature setting test
313       * zero-log tests
314       * more testing image formats
315     * manual page updates
316     * ioctl.h synced with current kernel uapi version
317     * convert: preparatory works for more filesystems (reiserfs pending)
318     * use static buffers for path handling where possible
319     * add new helpers for send uilts that check memory allocations,
320       switch all users, deprecate old helpers
321     * Makefile: fix build dependency generation
322     * map-logical: make it work again
323
324 btrfs-progs-4.0.1 (2015-05-20)
325   * restore:
326     * can restore symlinks, new option --symlinks
327     * long option variants added
328   * convert: dropped dependency on acl.h header and libacl is not required
329     for build
330   * fix for 'check' crash
331   * device remove error message fix
332   * preparatory works for fsid change
333
334 btrfs-progs-4.0 (2015-04-29)
335   * resize:
336     * don't accept file as an argument (it's confusing)
337     * print better error message in case of an error
338   * restore: optionally restore metadata (time, mode, uid/gid)
339   * receive: optionally enforce chroot
340   * new rescue subcommand 'zero-log', same as btrfs-zero-log, but now also
341     part of the main utility
342   * check:
343     * free space checks match kernel, fixes incorrect reports
344   * convert: fix setting of checksum bit if --no-datasum is used
345   * fsck.btrfs: don't print messages
346   * fix quota rescan on PPC64 (mangled ioctl number)
347   * test updates
348   * documentation: files renamed to .asciidoc, misc fixups
349
350 btrfs-progs-3.19.1 (2015-03-25)
351   * convert:
352     * new option to specify metadata block size
353     * --no-progress actually works
354   * restore: properly handle the page boundary corner case
355   * build fixes:
356     * missing macro from public header, BTRFS_BUILD_VERSION
357     * wrong handling of --enable-convert
358   * fi usage: reports correct space for degraded mounts
359   * other:
360     * mkfs: help string updates
361     * completion: added 'usage' subcommands
362     * cleanups in qgroup code, preparatory work
363
364 btrfs-progs-3.19 (2015-03-11)
365   * build converted to autotools
366   * btrfs-image
367     * restore can now run in parallel threads
368     * fixed restore of multiple image from multiple devices onto a single
369       dev
370     * introduced metadump v2
371   * check: make --init-csum-tree and --init-extent-tree work together
372   * find-new: option to search through all metadata even if a root was
373     already found
374   * convert: show progress by default, can be turned off
375   * corrupt-block: option to work on a specific root
376   * bash completion script for all subcommands
377
378 btrfs-progs-3.18.2 (2015-01-27)
379   * qgroup show: print human readable sizes, options to say otherwise
380   * check: new option to explicitly say no to writes
381   * mkfs: message about trimming is not printed to stderr
382   * fi show: fixed return value
383   * tests: new infrastructure
384   * btrfstune: force flag can be used together with seeding option
385   * backtrace support is back
386   * getopt cleanups
387   * doc and help updates
388
389 btrfs-progs-3.18.1 (2015-01-09)
390   * minor fixes
391   * documentation updates
392
393 btrfs-progs-3.18 (2014-12-30)
394   * mkfs - skinny-metadata feature is now on by default, first introduced in
395     kernel 3.10
396   * filesystem usage - give an overview of fs usage in a way that's more
397     comprehensible than existing 'fi df'
398   * device usage - more detailed information about per-device allocations
399   * check
400     * option to set a different tree root byte number
401     * ability to link lost files to lost+found, caused by a recent kernel
402       bug
403     * repair of severely corrupted fs (use with care)
404   * convert - option to show progress
405   * subvol create - print the commit mode inline, print the global mode only
406     if --verbose
407   * other updates: musl-libc support, coverity bugfixes, new test images,
408     documentation
409
410 btrfs-progs-3.17.3 (2014-12-04)
411   * convert: fix conversion of sparse ext* filesystems
412   * show: resolve to the correct path
413   * fsck: more verbose error for root dir problems
414
415 btrfs-progs-3.17.2 (2014-11-19)
416   * check improvements
417     * add ability to replace missing dir item/dir indexes
418     * fix missing inode items
419     * create missing root dirid
420   * corrupt block: enhancements for testing fsck
421   * zero-log: able to reset a fs with bogus log tree pointer (bug_72151)
422
423 btrfs-progs-3.17.1 (2014-11-04)
424   * fi df: argument handling
425   * fix linking with libbtrfs
426   * replace: better error reporting
427   * fi show: fixed stall if run concurrently with balance
428   * check: fixed argument parsing for --subvol-extents
429   * fi df: SI prefixes corrected
430
431 btrfs-progs-3.17 (2014-10-17)
432   * check: --init-csum-tree actually does something useful, rebuilds the
433     whole csum tree
434   * /dev scanning for btrfs devices is gone
435   * /proc/partitions scanning is gone, blkid is used exclusively
436   * new subcommand subvolume sync
437   * filesystem df: new options to set unit format
438   * convert: allow to copy label from the origin, or specify a new one
439
440 btrfs-progs-3.16.2 (2014-10-01)
441   * a few fixes in fsck and image tools
442
443 btrfs-progs-3.16.1 (2014-09-15)
444   * print GlobalReserve in fi df output
445   * new option -R in subvol list
446   * library version defines
447   * static build is fixed
448   * build without documentation is possible
449
450 btrfs-progs-3.16 (2014-08-26)
451   * mkfs: new option to specify UUID, drop experimental notice
452   * check: new option to verify quotas, reduced memory requirements, new
453     option to print extent sharing
454   * restore: check length before decompression, more error handling, option
455     to loop during restoring
456   * balance: new filter 'limit'
457   * recover: allow to read all sb copies
458   * btrfstune: new option to force dangerous changes
459   * receive: new option to limit number of errors
460   * show-super: skip unrecognized sb, add option to force
461   * debug-tree: print tree by id
462   * documentation updates
463
464 btrfs-progs-3.14.2 (2014-05-29)
465   * documentation is now written in asciidoc and there are manpages for each
466     subcommand
467   * misc bugfixes
468
469 btrfs-progs-3.14.1 (2014-04-18)
470   * properties: fix handling of option -t
471   * restore: fix reading of compressed extents
472   * minor code and doc updates
473
474 btrfs-progs-3.14 (2014-04-06)
475   * fsck: fixes and enhancements to --init-extent-tree mode
476   * fsck: chunk-recover updates
477   * scrub: add force option -f
478   * send: check if subvolumes are read-only
479   * subvol delete: add options to affect commit behaviour
480   * btrfs: add property command group
481   * restore: add dry-run option
482   * restore: fix restoring of compressed files
483   * mkfs: support for no-holes feature
484   * mkfs: option -r deals with hardlinks and relative paths
485   * mkfs: discard phase is interruptible
486   * documentation updates
487
488 btrfs-progs-3.12 (2013-11-25)
489   * announcement, tarballs
490   * first release after 0.19 (2009/06) with a lot of changes