v1.1.0 ======= - Correct the use case and update instructions in thin_migrate's man page - Ensure that the source device for thin_migrate is read-only v1.0.14 ======= - Introduce thin_migrate for volume migration (technical preview) - Fix thin_check's overriding roots not working if the original one broke - Improve error tolerance of ref counting in building space maps v1.0.13 ======= - Extend cache_check --clear-needs-check-flag to fix leaked blocks - Suppress error messages from cache/era_dump on broken pipe error - Add BTreeIterator - Support listing the highest mapped block in thin_ls - Support repairing device details tree from thin_repair - Support vectored write in SyncIoEngine - Fix missing version option in thin_explore - Fix subcommand parsing in dev-tools v1.0.12 ======= - Update license to SPDX identifier - Suppress error messages from thin_dump on broken pipe error - Fix version string compatibility issue with LVM v1.0.11 ======= - Fix bitset index out-of-bounds error in cache_check - Improve the hint messages from thin/cache_check for error resolution v1.0.10 ======= - Support long options in thin_metadata_pack/unpack - Make the space map formatting backward compatible to kernel's expansion behavior - Support overriding the details tree root in thin_check - Enhance thin_repair to detect a corner case involving incompatible child nodes - Improve compatibility of thin_check against unexpected bytes in the index block v1.0.9 ====== - Extend thin_check --clear-needs-check-flag to fix leaked blocks v1.0.8 ====== - Stop reusing the same gap buffer in SyncIoEngine v1.0.7 ====== - Fix ioctl request code for PowerPC architecture - Fix era_invalidate command parsing v1.0.6 ====== - Fix thin_delta command line parsing - Fix range mappings preprocessing in thin_delta v1.0.5 ====== - Fix thin_dump output that doesn't keep shared mappings - Fix build error on Musl - Allow overriding PDATA_TOOLS in Makefile - Ensure thin_dump/repair never fail with repairable metadata - Use flatten output in stderr if it is not a tty - thin_dump/repair now prefers non-empty roots while searching for roots - Check the input values for thin_rmap - Update dependencies: clap v4.4 and quick-xml v0.29 - Improve xml value parsing and error handling - Fix value wrapping issue in thin_metadata_pack/unpack v1.0.4 ====== - Fix incorrect crc32c outputs on big endian targets - Fix compilation errors on 32-bit platforms v1.0.3 ====== - Fix thin/cache_repair command line compatibility issue with lvconvert v1.0.2 ====== - Fix reading metadata snapshot in thin_ls - Fix opening live metadata in era_invalidate v1.0.1 ====== - Fix checking metadata snapshot in thin_check v1.0 ==== - Rewrite in Rust - Multithreaded tools - Higher performance io engines (optional io_uring async engine) - thin_dump/restore now retains sharing - thin_metadata_pack/unpack v0.9.0 ====== - New support tools: thin_metadata_{pack,unpack}. - thin_check can now check metadata snapshots. - some metadata space map bug fixes. - thin_check --auto-repair - Stop thin_dump --repair/thin_repair ignoring under populated nodes. v0.7.5 ====== - Fix a bug that stopped cache_restore working with metadata version 2. v0.7.4 ====== - Update this file ;) v0.7.3 ====== - Improve error messages if XML given as input to tools that expect metadata. There seems to be some confusion between XML and the metadata. - Add --override-mapping-root debug option to thin_dump. This can be useful when investigating damaged metadata. - More functional tests. v0.7.2 ====== - Fix segfault in restore tools when given a tiny metadata file (< 4k). - Lots more work on the functional tests. - Fix a couple of unit test regressions - Man page updates. - Rewrite man pages in a text format. Simpler than writing directly in nroff. v0.7.1 ====== - Fix a few bugs in block_cache. - Ditch Ruby/Cucumber for the functional tests. Now written in Scheme. - Be more aggressive about flushing dirty blocks from the block cache. Very little performance impact. - Optimisations in space_map_disk (small performance improvement for restore tools). v0.7.0 ====== - switch to C++11. This may cause problems with v. old versions of g++. - support cache metadata format 2 - support custom emitter plugins for thin_dump. - thin_dump --dev-id; allows the user to dump just the devices they're interested in. - cache_writeback; Use for offline decommission of a cache. - thin_scan/thin_ll_dump/restore dev tools. - --enable-dev-tools configure option. Use this for the extra tools. - thin_delta, various bug fixes. - various changes to the block cache. - thin_show_duplicates; a development only tool that scans block devices to calculate the level of data duplication. Uses either fixed block sizes or context sensitive. v0.6.3 ====== - Improve error messages if output file doesn't exist or is tiny. v0.6.2 ====== - Fix bug in thin_delta - Fix recent regression in thin_repair. - Force g++-98 dialect - Fix bug in thin_trim v0.6.1 ====== Fix bug in thin_dump when using metadata snaps. v0.6.0 ====== thin_ls v0.5.6 ====== era_invalidate may be run on live metadata if the --metadata-snap option is given. v0.5.5 ====== You may now give the --metadata_snap option to thin_delta without specifying where the snap is. Update man pages to make it clearer that most tools shouldn't be run on live metadata. Fix some bugs in the metadata reference counting for thin_check. v0.5.1 ====== Fix bug where the tools would crash if given a very large metadata device to restore to. v0.5 ==== - thin_delta, thin_trim - --clear-needs-check flag for cache_check - space map checking for thin check v0.4 ==== - All tools switch to using libaio. This gives a large performance boost, especially to the write focused tools like thin_restore. - Added a progress monitor to thin_restore, cache_restore and era_restore - Added a --quiet/-q option to *_restore to turn off the progress bar - Removed variable hint size support from cache tools. The kernel still only supports a fixed 32bit width. This will have a side effect of reducing the executable sizes due to less template instantiation. - Tools rolled into a single executable to save space. - Fixed some bugs when walking bitsets (possibly effecting cache_dump and cache_check).