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