Commit Graph

420 Commits

Author SHA1 Message Date
Joe Thornber c58c15e788 [thin_show_dups] move scan_with_variable_sized_chunks() into the dup detector 2015-09-08 13:17:52 +01:00
Joe Thornber b6e3a12297 [thin_show_dups] move scan into the duplicate_detector 2015-09-07 15:40:35 +01:00
Joe Thornber cb56b47400 [thin-show-dups] add --content-based-chunks 2015-09-04 15:27:48 +01:00
Joe Thornber 251762e6d9 [thin_show_dups] tidy up reporting 2015-09-04 15:16:49 +01:00
Joe Thornber 41a1b85c27 [thin_show_dups] take out some old assertions 2015-09-04 13:56:38 +01:00
Joe Thornber 216e5acb6c [thin_show_dups] remove variable number of mems per chunks.
Too slow and not used.
2015-09-04 13:48:02 +01:00
Joe Thornber 7633c5d7ae [thin_show_dups] get the progress bar working again 2015-09-04 10:36:39 +01:00
Joe Thornber 5d383c0293 [thin_show_dups] get the backup break working in the rolling hash 2015-09-04 10:10:41 +01:00
Joe Thornber 750ce0f47b [thin_show_dups] variable_chunk_stream 2015-09-03 13:02:29 +01:00
Joe Thornber d44a817c60 [thin_show_dups] Track zero blocks 2015-08-25 09:14:40 +01:00
Joe Thornber 6dd6fcb4cd [thin_show_dups] fix bug calculating block size for linear volumes 2015-08-25 08:38:01 +01:00
Joe Thornber 10f93be8b1 [thin_show_dups] put linear branch back in 2015-08-25 08:22:16 +01:00
Joe Thornber 3470ede50b [thin_show_dups] pull the various streams out to their own files 2015-08-24 16:55:53 +01:00
Joe Thornber 46fe4525bb [thin_show_dups] factor out a pool stream 2015-08-24 14:29:06 +01:00
Joe Thornber ac4104d063 add prefetching 2015-08-24 11:24:55 +01:00
Joe Thornber c8d3ce6af5 [thin_show_duplicates] start factoring out a chunk_stream abstraction 2015-08-24 11:18:31 +01:00
Joe Thornber d954f230fa [thin_show_duplicates] wip 2015-08-21 13:10:49 +01:00
Joe Thornber 94636b63d7 [thin_show_duplicates] print out the percentage of duplicates 2015-08-19 13:46:02 +01:00
Joe Thornber 929a824184 [thin_show_duplicates] add --block-sectors switch 2015-08-19 13:07:56 +01:00
Joe Thornber 519cbfd855 [thin_show_duplicates] add a progress bar 2015-08-19 12:53:11 +01:00
Joe Thornber 59a622670c [thin_show_duplicates] wip 2015-08-19 12:32:57 +01:00
Joe Thornber dbd0c65088 [thin_show_duplicates] stub new command 2015-08-19 09:41:14 +01:00
Joe Thornber 29c2a949f4 remove a bit of debug 2015-08-13 14:56:30 +01:00
Joe Thornber 5d28c05dc3 [thin_check] detail and mapping trees weren't being counted properly for the metadata snap.
This could result in block counts being unexpectedly non zero.
2015-08-04 15:14:02 +01:00
Joe Thornber 7134a58134 [thin_metadata_size] use floor rather than truncl 2015-07-30 11:45:13 +01:00
Joe Thornber 3a881e9513 [thin_delta] Allow optional arg when using -m 2015-07-28 11:29:00 +01:00
Joe Thornber 93fb540bd4 [thinp tools] move find_metadata_snap to superblock.cc 2015-07-27 14:30:09 +01:00
Joe Thornber 642ae6e7c2 Tools now open the metadata device in O_EXCL mode.
An attempt to stop people running the tools on active metadata.
2015-07-07 13:47:00 +01:00
Joe Thornber f85b7cef3f thin_dump, thin_check: Fix bug in damage reporting 2015-07-03 13:00:13 +01:00
Joe Thornber 082491d140 thin_check: tidy up some unintuitive code 2015-06-22 11:13:19 +01:00
Joe Thornber 270c0f7041 [thin_check] factor out check_space_map_counts() 2015-04-08 14:07:38 +01:00
Joe Thornber 0fee897fda [thin_check] A space map count being too high should be a NON_FATAL error. 2015-04-08 12:32:31 +01:00
Joe Thornber 20079f3d28 Pass tm's by reference 2015-04-07 13:31:45 +01:00
Joe Thornber ee200ba85b Merge branch 'master' into space-map-checking 2015-04-07 12:18:23 +01:00
Joe Thornber 7f643b7050 [thin] Use specific damage visitors to improve error messages.
There's now a damage visitor for dev_trees, mapping_trees and
single_mapping_trees.
2015-04-07 12:16:46 +01:00
Joe Thornber f581f34be8 add comment explaining mtree_traits 2015-04-07 12:10:38 +01:00
Joe Thornber cc44652cc3 [thin_delta] support metadata snapshots 2015-03-25 11:10:18 +00:00
Joe Thornber 0e72f772d0 [thin_delta] Add superblock and diff tags 2015-03-25 10:09:39 +00:00
Joe Thornber 45422dbf7a [thin_delta] Mappings were being missed off from the tail of a device 2015-03-24 13:36:45 +00:00
Joe Thornber c6ae25417b Add missing include to thin_trim 2015-01-17 11:45:09 +00:00
Joe Thornber fe64da2c7c Fix these errors:
thin-provisioning/thin_pool.cc:206: error: reference to 'sector_t' is ambiguous
./thin-provisioning/metadata.h:40: error: candidates are: typedef uint64_t thin_provisioning::sector_t
./block-cache/block_cache.h:20: error:                 typedef uint64_t bcache::sector_t
thin-provisioning/thin_pool.cc:206: error: reference to 'sector_t' is ambiguous
./thin-provisioning/metadata.h:40: error: candidates are: typedef uint64_t thin_provisioning::sector_t
./block-cache/block_cache.h:20: error:                 typedef uint64_t bcache::sector_t
thin-provisioning/thin_pool.cc:206: error: 'sector_t' does not name a type

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
2015-01-16 10:14:28 +00:00
Joe Thornber 8e92158055 [thin_trim] first code drop.
No testing done as yet.
2014-11-18 16:03:03 +00:00
Joe Thornber 41354f10f5 provide << operator for optionals 2014-09-04 11:26:43 +01:00
Joe Thornber 6f8b7e2914 [all] Build a single executable 2014-08-27 14:01:31 +01:00
Joe Thornber 828f654800 [*_restore] Add progress bar to cache_restore and era_restore.
A lot of refactoring common code between the restore tools.
2014-08-26 13:05:21 +01:00
Joe Thornber d17ad86a88 [*_restore] Use a little wrapper class for the expat XML_Parser to ensure it gets destroyed. 2014-08-26 11:23:29 +01:00
Joe Thornber a7c96c0e1e [everything] Fix circular shared pointer references.
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.

This prevented objects being destroyed when various programs exited.

From now on we'll try and only use a shared ptr if ownership is
implied.  Otherwise a reference will be used (eg, for up pointers).
2014-08-26 11:14:49 +01:00
Joe Thornber 936e14441f Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-08-06 16:32:04 +01:00
Joe Thornber 1d38b390b5 Factor common code out of the xml_format files. 2014-08-06 15:29:02 +01:00
Joe Thornber d00aef9219 [thini_restore] add a quiet option to turn off the progress monitor 2014-08-05 12:10:34 +01:00
Joe Thornber fccc1dfcb0 [thin_restore] Add a progress monitor 2014-08-05 11:47:57 +01:00
Joe Thornber 8321bdcf59 Merge pull request #13 from bgilbert/fix-units
thin_metadata_size: Fix long names of units
2014-08-05 09:34:37 +01:00
Joe Thornber 7e870ea5a6 start removing block_manager<>::block 2014-07-25 14:46:51 +01:00
Joe Thornber b32908d5c2 work in progress 2014-07-25 10:35:04 +01:00
Joe Thornber d517684c95 Initial code drop for merging block_cache 2014-07-22 16:41:39 +01:00
Joe Thornber e77e8715b0 Remove ambiguity between boost::uint64_t and ::uint64_t.
This has been causing people problems on uclibc builds.
2014-07-02 08:19:20 +00:00
Joe Thornber e4d82d04bd [thin_delta] Fix bug when detecting right_only mappings 2014-06-17 16:20:38 +01:00
Joe Thornber c8f408ac3c [thin_delta] Update the usage 2014-06-17 15:00:38 +01:00
Joe Thornber bb57104542 [thin_delta] By default output a simpler format that ignores the data locations.
Most people will access the data via the thin device itself, so
there's really no need to output the locations of the data on pool
device.  Doing this allows us to run together adjacent thin blocks
(even if they are not adjacent on the pool dev).

Simple format:

  <same begin="0" length="1"/>
  <different begin="1" length="4"/>
  <same begin="5" length="1"/>
  <different begin="6" length="6"/>
  <same begin="12" length="1"/>
  <different begin="13" length="9"/>
  <same begin="22" length="1"/>
  <different begin="23" length="4"/>
  <same begin="27" length="1"/>
  <different begin="28" length="3"/>
  <same begin="31" length="1"/>
  <different begin="32" length="1"/>

The old format is available using the --verbose switch:

  <same>
    <range begin="0" data_begin="0" length="1"/>
  </same>

  <different>
    <range begin="1" left_data_begin="24576" right_data_begin="16384" length="1"/>
    <range begin="2" left_data_begin="24577" right_data_begin="2" length="1"/>
    <range begin="3" left_data_begin="24578" right_data_begin="16385" length="1"/>
    <range begin="4" left_data_begin="24579" right_data_begin="4" length="1"/>
  </different>

  <same>
    <range begin="5" data_begin="5" length="1"/>
  </same>

  <different>
    <range begin="6" left_data_begin="24580" right_data_begin="16386" length="1"/>
    <range begin="7" left_data_begin="7" right_data_begin="16387" length="1"/>
    <range begin="8" left_data_begin="24581" right_data_begin="8" length="1"/>
    <range begin="9" left_data_begin="24582" right_data_begin="16388" length="1"/>
    <range begin="10" left_data_begin="10" right_data_begin="16389" length="1"/>
    <range begin="11" left_data_begin="24583" right_data_begin="11" length="1"/>
  </different>

  <same>
    <range begin="12" data_begin="12" length="1"/>
  </same>

  <different>
    <range begin="13" left_data_begin="24584" right_data_begin="13" length="1"/>
    <range begin="14" left_data_begin="24585" right_data_begin="16390" length="1"/>
    <range begin="15" left_data_begin="24586" right_data_begin="15" length="1"/>
    <range begin="16" left_data_begin="16" right_data_begin="16391" length="1"/>
    <range begin="17" left_data_begin="24587" right_data_begin="16392" length="1"/>
    <range begin="18" left_data_begin="18" right_data_begin="16393" length="3"/>
    <range begin="21" left_data_begin="24588" right_data_begin="21" length="1"/>
  </different>

  <same>
    <range begin="22" data_begin="22" length="1"/>
  </same>

  <different>
    <range begin="23" left_data_begin="24589" right_data_begin="23" length="1"/>
    <range begin="24" left_data_begin="24590" right_data_begin="16396" length="1"/>
    <range begin="25" left_data_begin="24591" right_data_begin="25" length="1"/>
    <range begin="26" left_data_begin="26" right_data_begin="16397" length="1"/>
  </different>

  <same>
    <range begin="27" data_begin="27" length="1"/>
  </same>

  <different>
    <range begin="28" left_data_begin="24592" right_data_begin="28" length="2"/>
    <range begin="30" left_data_begin="30" right_data_begin="16398" length="1"/>
  </different>

  <same>
    <range begin="31" data_begin="31" length="1"/>
  </same>

  <different>
    <range begin="32" left_data_begin="24594" right_data_begin="32" length="1"/>
  </different>
2014-06-17 14:20:33 +01:00
Joe Thornber 0e62a1c4de [thin_delta] provide a more complete diff output. 2014-06-17 12:39:13 +01:00
Joe Thornber f80c2dc77f [thin_delta] Don't use endl which also flushes 2014-06-16 13:58:25 +01:00
root 72e20c2d40 remove some dead code 2014-06-16 13:41:07 +01:00
Joe Thornber d7d293ee4f thin_delta now works 2014-06-10 16:38:20 +01:00
Joe Thornber d1989f4a14 whitespace 2014-06-10 16:38:10 +01:00
Joe Thornber e851b35954 [thin_delta] read in the snaps and dev 2014-06-09 13:26:55 +01:00
Joe Thornber b03fa373a1 [thin_delta] Print usage on unrecognised switch 2014-06-09 10:51:10 +01:00
Joe Thornber 83f2cce597 [thin_delta] -h/--help 2014-06-09 10:48:29 +01:00
Joe Thornber 87fa6dc079 [thin_delta] --version/-V 2014-06-09 10:37:46 +01:00
Benjamin Gilbert 2679e7f088 thin_metadata_size: Fix long names of units
Both implementations of thin_metadata_size believe units are defined
like this:

    1024 == kilobyte == k
    1000 == kibibyte == K

and so on.  Fix the 1000/1024 confusion, while continuing to follow the
LVM convention of using lowercase letters for binary units, so that we
have:

    1024 == kibibyte == k
    1000 == kilobyte == K
2014-05-17 03:51:06 -04:00
Benjamin Gilbert e7e3e93ec6 thin_metadata_size: Drop executable bit on source file 2014-05-17 03:51:03 -04:00
Joe Thornber 05b18a5b99 [thin_check] Fix bug in clear needs check logic.
Mixed up bools and int returns.
2014-04-02 13:43:16 +01:00
Joe Thornber c3249ff757 [thin_check] --clear-needs-check-flag 2014-03-27 12:00:17 +00:00
Joe Thornber 50d1a3e7d2 [thin_check] inc superblock and metadata snap in space map checking 2014-02-20 16:36:03 +00:00
Joe Thornber 9f6546f621 put space map checking back in 2014-02-19 16:08:05 +00:00
Joe Thornber 38f8195a99 thin_show_blocks 2014-02-19 15:01:07 +00:00
Joe Thornber 5fe5d213b7 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools into era
Conflicts:
	Makefile.in
2014-01-31 22:35:04 +00:00
Joe Thornber 344f4b1e08 Factor out base/indented_stream.h 2014-01-31 13:43:39 +00:00
Joe Thornber ef6066e2cd Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2014-01-15 15:52:33 +00:00
Joe Thornber c24fa93f2c whitespace 2014-01-15 15:50:50 +00:00
Joe Thornber be5fa59f90 Merge branch 'era' of github.com:jthornber/thin-provisioning-tools into era 2014-01-08 10:50:26 +00:00
Joe Thornber 8049d369a9 stuff 2013-12-11 17:28:14 +00:00
Joe Thornber 983a5e84e6 Move endian_utils to base/ 2013-11-19 10:23:35 +00:00
Joe Thornber 05effffdf9 [thin-provisioning] re-write metadata_dumper.cc 2013-10-16 10:20:43 +01:00
Joe Thornber b87742ccff [thin-provisioning] walk_mapping_tree() 2013-10-16 10:20:15 +01:00
Joe Thornber a06139ef9f [thin-provisioning] walk_device_tree() 2013-10-16 10:19:29 +01:00
Joe Thornber 9dc4a97cb7 [thin_check] thin_check wasn't giving a non-zero exit code for damage in mapping trees 2013-10-15 10:40:26 +01:00
Joe Thornber 61e90998c0 [cache_dump, cache_restore] restore/dump cycle works 2013-09-19 13:45:56 +01:00
Joe Thornber 7ce306cb6d [thin_restore] check the input file exists.
Previously we were hanging if it didn't
2013-09-16 13:43:06 +01:00
Joe Thornber 6615b25e4b WIP on cache tools 2013-09-11 11:40:46 +01:00
Joe Thornber 7ada06aa77 fluff 2013-08-16 14:34:51 +01:00
Joe Thornber be6f90f16c [thin_restore] use full paths for includes. 2013-08-16 14:33:19 +01:00
Joe Thornber 67551d81f1 Put error_state into into it's own file. 2013-08-16 14:07:04 +01:00
Joe Thornber 94bd3aef3b Put nested_output in it's own file 2013-08-16 13:48:25 +01:00
Joe Thornber 500e508c6d fix up some coverity issues 2013-08-15 16:26:17 +01:00
Joe Thornber 77286e0bc7 Take out some 'typename's to support older versions of gcc (Heinz). 2013-08-15 10:35:07 +01:00
Joe Thornber 0029962f20 Give up with --std=c++11
There are too many distros that use old versions of g++ that don't support it adequately.
2013-08-08 10:49:59 +01:00
Joe Thornber dd26ec76b2 [thin_repair] don't open the space maps in the old metadata, we'll regenerate. 2013-08-02 13:14:49 +01:00
Heinz Mauelshagen 13293d0640 Fix missing quote in xml output with metadata_snap= 2013-07-31 12:07:16 +02:00
Heinz Mauelshagen bdb8d6e5cc thin_dump: cleanup metadata snapshot support 2013-07-30 17:10:41 +02:00
Heinz Mauelshagen 78389803bc thin_dump.cc: fix metadata snapshot logic 2013-07-30 15:31:36 +02:00
Heinz Mauelshagen e16b7c8ea0 Fluff 2013-07-29 12:29:05 +02:00
Heinz Mauelshagen 28a8351e12 Fluff 2013-07-19 12:12:31 +02:00
Heinz Mauelshagen d02bcbab56 Merge branch 'Work_1' of github.com:lvmguy/thin-provisioning-tools into Work_1
Conflicts:
	Makefile.in
	man8/thin_dump.8
	man8/thin_metadata_size.8
	thin-provisioning/thin_dump.cc
2013-07-19 12:11:28 +02:00
Heinz Mauelshagen dd1e4c1233 thin_dump: support optional block# with --metadata-snap to allow for default snapshot stored in metadata to be used; update manual page 2013-07-19 11:48:15 +02:00
Heinz Mauelshagen e8f9fc6dff thin_metadata_size: use NOO_NUMBER whilst defining full bool 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen b7ca980664 thin_metadata_size: support short/long --numeric-only options; man page adjustment; change long output; stremaline 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen ce4e01d8c9 thin_metadata_size: remove superfluous array; streamline 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen 03d2ca3a99 thin_metadata_size: support long unit specifiers; make sure exit_prg() is being called; update manual page 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen e4912f548c thin_metadata_size.c: support -V option; support -n option argument for unit specifier; add input parameter set to long output 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen 5a039267df thin_dump: support --metadata-snap block# 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen ed88882007 autconf: support build of thin_metadata_size.c 2013-07-18 14:52:08 +02:00
Heinz Mauelshagen 80be0d0f54 thin_metadata_size.c: indenting 2013-07-18 14:51:09 +02:00
Heinz Mauelshagen e1067455c4 thin_metadata_size.c: fix --maxthins unit processing 2013-07-18 14:51:09 +02:00
Heinz Mauelshagen 74cd1f6b28 thin_metadata_size.c: format output enhancements 2013-07-18 14:51:09 +02:00
Heinz Mauelshagen 65598e3132 thin_metadata_size.c: new C implementation of metadata size calculation tool 2013-07-18 14:51:09 +02:00
Heinz Mauelshagen 9fac224f25 thin_metadata_size: use NOO_NUMBER whilst defining full bool 2013-07-18 14:19:06 +02:00
Heinz Mauelshagen 3ee6985bbc thin_metadata_size: support short/long --numeric-only options; man page adjustment; change long output; stremaline 2013-07-18 14:03:27 +02:00
Heinz Mauelshagen 175c70ecf2 thin_metadata_size: remove superfluous array; streamline 2013-07-17 17:24:55 +02:00
Heinz Mauelshagen ffb585cbc5 thin_metadata_size: support long unit specifiers; make sure exit_prg() is being called; update manual page 2013-07-17 16:00:39 +02:00
Heinz Mauelshagen 4ba612f506 thin_metadata_size.c: support -V option; support -n option argument for unit specifier; add input parameter set to long output 2013-07-17 13:25:03 +02:00
Heinz Mauelshagen 1b6f9255a1 thin_dump: support --metadata-snap block# 2013-07-16 17:39:40 +02:00
Heinz Mauelshagen 69ff5d5513 autconf: support build of thin_metadata_size.c 2013-07-15 16:48:36 +02:00
Heinz Mauelshagen a7e196cc3a thin_metadata_size.c: indenting 2013-07-12 17:09:14 +02:00
Heinz Mauelshagen 931221647c thin_metadata_size.c: fix --maxthins unit processing 2013-07-12 13:29:12 +02:00
Heinz Mauelshagen 99a1b96b2f thin_metadata_size.c: format output enhancements 2013-07-12 12:58:53 +02:00
Heinz Mauelshagen 3a95c7f830 thin_metadata_size.c: new C implementation of metadata size calculation tool 2013-07-11 18:34:00 +02:00
Heinz Mauelshagen 7a8b223c30 create_xml_data: fix mapping variation check 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 9e32e25ac4 create_xml_data: simplify to mappings; drop all units 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen fe4776f2cb create_xml_data: fiddling 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen f9988c7312 create_xml_data: adjust to thinp_xml output 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen cb23845c17 create_xml_data: adjust filed order to thin_dumo format; fix nr_data_blocks 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 979c479e1a create_xml_data: remove space in dev_id ouput 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 42a1db8792 create_xml_data: support --size-variation and check for block size > 0 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 8ca0a87eda thin_metadata_size: check for block size > 0 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 31df9b6d10 thin_metadata_size: drop signe_mapping to = 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 11cec295ce thin_metadata_size,create_xml_data: fix units 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 2fa1ce95eb create_xml_data: fix device and range_mapping 2013-07-10 17:15:18 +02:00
Heinz Mauelshagen 6ba44c54a3 create_xml_data: fix nr_data_blocks 2013-07-10 17:15:18 +02:00
Joe Thornber f2fe3ba2b3 [metadata_dumper] Fix bug where ranges were appearing in all devices for small metadata.
Author: Teng-Feng Yang
2013-07-09 13:28:36 +01:00
Joe Thornber e701b96642 [thin_dump] bug in last bug fix 2013-06-28 14:24:39 +01:00
Joe Thornber fe8e1592a9 [thin_dump] Fix regression where mappings for all devices were being listed in every device. 2013-06-28 13:43:28 +01:00
Joe Thornber 2fc95b3a2d [thin_dump] add -o switch 2013-06-28 12:17:43 +01:00
Joe Thornber 7cab21c8e7 [thin_restore] Tweak usage message. 2013-06-27 09:44:46 +01:00
Heinz Mauelshagen 4f2af9b719 create_xml_data: fix range support 2013-06-26 13:08:16 +02:00
Heinz Mauelshagen 2631d377b5 thin_metadata_size: fix units 2013-06-26 13:01:51 +02:00
Heinz Mauelshagen 63c140d26e create_xml_data: new xml metadata creation tool 2013-06-26 12:45:19 +02:00
Joe Thornber eb8d4c6f0b Get tools building with g++ 4.8.1 2013-06-25 13:48:02 +01:00
Heinz Mauelshagen 2d74d47373 thin_metadata_size: allow for very small sizes 2013-06-24 13:52:46 +02:00
Heinz Mauelshagen 6ff5e418eb thin_metadata_size: missed estimated_result() return 2013-06-24 13:21:14 +02:00
Heinz Mauelshagen b20caae5cc thin_metadata_size: add get_index(); streamline 2013-06-24 13:18:33 +02:00
Heinz Mauelshagen bea157cf70 thin_metadata_size: suppurt bytes unit 2013-06-24 12:30:43 +02:00
Heinz Mauelshagen 92028bcef6 thin_metadata_size: add an index variable to init_units and fiy a message type 2013-06-21 15:46:39 +02:00
Heinz Mauelshagen b4db483647 thin_metadata_size: avoid unit_chars variable and adjust estimated output message 2013-06-21 14:58:53 +02:00
Heinz Mauelshagen 8d2ae677ff thin_metadata_size: algorithm corrections and output adjustments 2013-06-21 14:33:14 +02:00
Heinz Mauelshagen 0b29c22ba9 thin_metadata_size: new metadata size calculation tool 2013-06-21 12:41:53 +02:00
Heinz Mauelshagen f376fdfb49 thin_check.cc: remove superfluous 'if (enabled)' 2013-06-21 12:35:06 +02:00
Heinz Mauelshagen 9900c91c1b thin_check.cc: support --quiet in nested_output 2013-06-21 12:35:06 +02:00
Joe Thornber 83a09e1a2a [btree] use a block_ref_counter for internal nodes 2013-06-20 14:29:48 +01:00
Heinz Mauelshagen 5d6a3c184b thin_check.cc: remove superfluous 'if (enabled)' 2013-06-19 14:15:53 +02:00
Heinz Mauelshagen 41287e182f thin_check.cc: support --quiet in nested_output 2013-06-19 14:12:44 +02:00
Heinz Mauelshagen 88f9252a03 thin_check.cc: reenable --quiet option 2013-06-19 13:41:29 +02:00
Joe Thornber 21074456ca thin_repair 2013-06-19 12:39:28 +01:00
Joe Thornber 0938d24ea1 Take held root support out of thin_dump.
Temporary, just to get things building.
2013-06-19 12:11:34 +01:00
Joe Thornber 055b237126 tweaks to metadata constructor, and some updated features. 2013-06-19 11:34:01 +01:00
Joe Thornber acd197ed6f [thin_restore] restore_emitter now checks the mappings against the data device length. 2013-06-18 14:18:39 +01:00
Joe Thornber 8781685a10 whitespace 2013-06-14 14:32:50 +01:00
Joe Thornber 6706493304 Remove some global 'using namespace's 2013-05-28 13:48:10 +01:00
Joe Thornber e64dda95f6 rename range<> -> run<> 2013-05-28 12:20:05 +01:00
Joe Thornber 83d6b609eb [range.h] rename to run.h 2013-05-28 11:51:44 +01:00
Joe Thornber 82324d1d27 [thin_rmap] rmap_visitor now sorts the rmap into ascending data_block order. 2013-05-24 14:01:03 +01:00
Joe Thornber 8fab2e37af [thin_rmap] now produces ranged output. 2013-05-24 13:43:55 +01:00
Joe Thornber 41204dceaa [thin_rmap] rmap_visitor 2013-05-24 13:30:17 +01:00
Joe Thornber 4d17d3f7ec [thin_rmap] finish implementing 2013-05-23 15:06:57 +01:00
Joe Thornber 25a090279f [thin_rmap] region parsing 2013-05-23 13:57:57 +01:00
Joe Thornber 5498e0bc46 [thin_check] fluff 2013-05-23 13:57:15 +01:00
Joe Thornber bc67fc17b1 [thin_rmap] Stub 2013-05-23 13:15:00 +01:00
Joe Thornber 063769cd12 [thin_check] we don't need to import the persistent_data namespace any more. 2013-05-23 12:00:36 +01:00
Joe Thornber e7303a11c6 [thin_check] --ignore-non-fatal-errors 2013-05-23 11:57:02 +01:00
Joe Thornber 84858ab86e whitespace 2013-05-23 11:46:06 +01:00
Joe Thornber f8efc4f58c [thin_check] Add cucumber test for --skip-mappings 2013-05-23 11:45:08 +01:00
Joe Thornber 8ccfff6c34 [thin-check] wire up superblock-only and skip-mappings 2013-05-23 11:25:54 +01:00
Joe Thornber 6fe92d4a63 [thin_check] wire up mapping tree checker 2013-05-22 14:55:28 +01:00
Joe Thornber b456f16aa0 [thin_check] Wire up check_device_tree. 2013-05-21 15:49:20 +01:00
Joe Thornber f91b8f2fba [thin_check] nested_output 2013-05-21 15:05:25 +01:00
Joe Thornber 4d83b7775b [thin_check] start wiring up the new damage visitor infrastructure, starting with superblock corruption. 2013-05-21 14:38:33 +01:00
Joe Thornber 6fcda37dbc superblock damage visitor 2013-05-21 14:01:17 +01:00
Joe Thornber 24ddc4f5c4 Move superblock_validator into superblock.{h,cc} 2013-05-21 13:20:03 +01:00
Joe Thornber 553f73b826 superblock_checker.* -> superblock.*, remove metadata_disk_structures.* and rearrange namespaces a bit. 2013-05-21 12:46:07 +01:00
Joe Thornber 4e61578508 mapping_tree.{h,cc} 2013-05-21 11:46:37 +01:00
Joe Thornber 8f2ab2d676 Introduce mapping_tree.h 2013-05-20 17:37:46 +01:00
Joe Thornber 35880f3038 Move device_details_traits into the device_tree_detail namespace. 2013-05-20 16:35:26 +01:00
Joe Thornber fcb617f858 device_tree 2013-05-20 16:09:13 +01:00
Joe Thornber b0d1fa0851 Sanitise btree_detail::node_location 2013-05-15 13:37:30 +01:00
Joe Thornber a7adefbae8 Move range.h to persistent-data 2013-05-08 16:38:04 +01:00
Joe Thornber d113ff6e5a thin restorer is now careful to share the mapping tree for empty devices.
This saves a lot of metadata space if you're creating lots of empty
devs (4k per dev).  Also makes things faster since we don't have to
allocate.
2013-05-07 14:24:59 +01:00
Joe Thornber edf16f59c7 [restorer] Mappings only get inserted when the device is completed.
This saves looking up the device mapping tree for every insert.
2013-05-02 12:59:42 +01:00
Joe Thornber a828cde96d [btree] visitor now passed as a reference rather than shared_ptr 2013-05-02 12:31:33 +01:00
Joe Thornber 21603c5a5d ostream operator << for range template. 2013-05-01 16:30:59 +01:00
Joe Thornber 5d0b23beea Some btree visitor tidying.
Introduce node_location to replace the long list of parameters.  Also
add a depth field to keep track of the depth from root.
2013-05-01 16:16:23 +01:00
Joe Thornber fa96ec6301 Add operator == for the range template 2013-04-29 16:12:34 +01:00
Joe Thornber 5e26d51372 add equality operators for the metadata_damage classes. 2013-04-29 16:12:05 +01:00
Joe Thornber 969a5f62c6 Working on device_checker 2013-04-29 15:37:53 +01:00
Joe Thornber 524f9474cf Add a range class 2013-04-29 15:10:01 +01:00
Joe Thornber 6422b22610 Move block_manager member down into checker base class. 2013-04-29 13:31:33 +01:00
Joe Thornber 1a8b1b29e8 Start device_checker 2013-04-29 13:24:19 +01:00
Joe Thornber c0b14ce280 fluff 2013-04-29 12:49:32 +01:00
Joe Thornber 034abaff1e Stop metadata:commit printing the superblock out to stderr. 2013-04-29 12:48:58 +01:00
Joe Thornber 2b8b74065b add fixme 2013-04-29 12:40:56 +01:00
Joe Thornber 441cba7185 Small work on metadata_checker tests. 2013-04-26 15:55:45 +01:00
Joe Thornber a55f6fcf78 A stack of thin_check refactorings 2013-04-25 16:27:07 +01:00
Joe Thornber 20ff78c818 [thin_check] Start refactoring metadata_checker. 2013-04-23 15:21:44 +01:00
Joe Thornber dde775ef52 thin_metadata_t now reproduces the recursive new_block() error. 2013-04-11 13:41:43 +01:00
Joe Thornber 3629e1e2b5 cucumber test for thin_check --super-block-only 2013-04-11 13:40:47 +01:00
Joe Thornber be7801f111 some __le -> le issues 2013-03-22 15:48:43 +00:00
Joe Thornber 907dc34499 rename some parameters 2013-03-15 14:59:32 +00:00
Joe Thornber 7d18b08b91 rename NoOpRefCounter -> no_op_ref_counter 2013-02-01 14:49:26 +00:00
Joe Thornber 779f8e1fd4 Introduce a mode enum to block_io<> 2013-01-11 20:16:40 +00:00
Joe Thornber aacca8d963 Introduce persistent-data/data-structures/ 2013-01-11 19:26:51 +00:00
Joe Thornber 326fd3408b move space maps to their own sub directory 2013-01-10 21:36:38 +00:00
Joe Thornber 282e98a6b1 Move source into separate sub directories. 2013-01-02 12:55:41 +00:00