23 Feb, 2016

1 commit


10 Dec, 2015

5 commits

  • If ignore_zero_blocks is enabled dm-verity will return zeroes for blocks
    matching a zero hash without validating the content.

    Signed-off-by: Sami Tolvanen
    Signed-off-by: Mike Snitzer

    Sami Tolvanen
     
  • Add support for correcting corrupted blocks using Reed-Solomon.

    This code uses RS(255, N) interleaved across data and hash
    blocks. Each error-correcting block covers N bytes evenly
    distributed across the combined total data, so that each byte is a
    maximum distance away from the others. This makes it possible to
    recover from several consecutive corrupted blocks with relatively
    small space overhead.

    In addition, using verity hashes to locate erasures nearly doubles
    the effectiveness of error correction. Being able to detect
    corrupted blocks also improves performance, because only corrupted
    blocks need to corrected.

    For a 2 GiB partition, RS(255, 253) (two parity bytes for each
    253-byte block) can correct up to 16 MiB of consecutive corrupted
    blocks if erasures can be located, and 8 MiB if they cannot, with
    16 MiB space overhead.

    Signed-off-by: Sami Tolvanen
    Signed-off-by: Mike Snitzer

    Sami Tolvanen
     
  • verity_for_bv_block() will be re-used by optional dm-verity object.

    Signed-off-by: Sami Tolvanen
    Signed-off-by: Mike Snitzer

    Sami Tolvanen
     
  • Prepare for an optional verity object to make use of existing dm-verity
    structures and functions.

    Signed-off-by: Sami Tolvanen
    Signed-off-by: Mike Snitzer

    Sami Tolvanen
     
  • Prepare for extending dm-verity with an optional object. Follows the
    naming convention used by other DM targets (e.g. dm-cache and dm-era).

    Signed-off-by: Sami Tolvanen
    Signed-off-by: Mike Snitzer

    Sami Tolvanen