Ming-Hung Tsai
6c90f9483e
[metadata_checker] Support in-place metadata space map modification
2020-08-12 16:57:16 +08:00
Ming-Hung Tsai
1cfdcd58c5
[metadata_checker] Disable checking data block ref-counts due to performance concerns
2020-08-12 16:57:16 +08:00
Ming-Hung Tsai
b16ff123b7
[thin] Stop metadata counting on the first error
2020-08-12 15:56:26 +08:00
Ming-Hung Tsai
c952f52c79
[metadata_checker] Fix expected ref-counts in data space map comparison
2020-08-10 20:39:22 +08:00
Ming-Hung Tsai
2d9eaa1c56
[metadata_checker] Do not update the superblock if the needs_check flag is not set
2020-08-08 01:20:15 +08:00
Ming-Hung Tsai
b278f4ffa4
[thin_check] Change the policy of --clear-needs-check-flag to prevent error recurrence
...
- Disallow clearing the needs_check flag if there's any error,
i.e., the metadata must be fully examined, and the result must
be NO_ERROR.
- Disallow combining --clear-needs-check with -m, --super-blocks-only,
--skip-mappings, --override-mapping-root, or --ignore-non-fatal-errors.
2020-07-30 23:00:50 +08:00
Ming-Hung Tsai
49efa06ffa
[thin_check] Support fixing leaked metadata blocks
...
- The leaked blocks are defined as allocated but not used ones,
i.e., expected ref-count == 0 and actual ref-count <= 2.
- Blocks with expected ref-count > 0, or actual ref-count > 2,
are treated as unrepairable leaks.
- The fixing processing won't be executed if there's any
unrepairable leak or errors.
- The fixing process implicitly clearing the superblock
needs_check flag if there's no error.
2020-07-30 23:00:50 +08:00
Ming-Hung Tsai
7be6b91420
[metadata_checker] Tidying: rename variables
2020-07-29 16:47:22 +08:00
Ming-Hung Tsai
ecb5226acc
[thin] Fix indent and trailing whitespaces
2020-07-29 16:47:22 +08:00
Ming-Hung Tsai
b693c7d6b0
[metadata_checker] Fix missing member initialization
2020-07-29 16:47:22 +08:00
Joe Thornber
fec11289b0
[thin_check/dump] Under populated nodes are now 'non fatal errors'
...
thin_dump always ignores non-fatal-errors.
2020-07-02 16:03:23 +01:00
Joe Thornber
0b5afc6cb0
[thin_check] fix bugs in thin_check -m
2020-06-12 13:41:47 +01:00
Joe Thornber
86704deacb
[thin_check] Add support for --metadata-snap.
...
Not tested yet.
2020-06-09 14:25:19 +01:00
Joe Thornber
16a10d2554
[thin_check] Remove the metadata_checker base class.
...
It's really only a single method.
2020-05-28 14:43:03 +01:00
Joe Thornber
c94f560be8
[thin_check] Check the ref counts in the data space map.
...
Hadn't realised this was being done.
2020-05-28 14:35:51 +01:00
Joe Thornber
e801cc607b
[block_manager] Hard code block size to 4k.
...
We're never going to use anything other than 4k, and by hard coding it we
avoid making block_manager a template.
2020-04-30 14:30:01 +01:00
Ming-Hung Tsai
c85ea5ef76
[thin_check] factor out metadata_checker
2020-02-17 11:42:24 +00:00
Joe Thornber
d517684c95
Initial code drop for merging block_cache
2014-07-22 16:41:39 +01:00
Joe Thornber
6615b25e4b
WIP on cache tools
2013-09-11 11:40:46 +01:00
Joe Thornber
6fcda37dbc
superblock damage visitor
2013-05-21 14:01:17 +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
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
6422b22610
Move block_manager member down into checker base class.
2013-04-29 13:31:33 +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
282e98a6b1
Move source into separate sub directories.
2013-01-02 12:55:41 +00:00