• Mike Snitzer's avatar
    dm verity: allow optional args to alter primary args handling · df326e7a
    Mike Snitzer authored
    The previous commit ("dm verity: Add optional "try_verify_in_tasklet"
    feature") imposed that CRYPTO_ALG_ASYNC mask be used even if the
    optional "try_verify_in_tasklet" feature was not specified. This was
    because verity_parse_opt_args() was called after handling the primary
    args (due to it having data dependencies on having first parsed all
    primary args).
    
    Enhance verity_ctr() so that simple optional args, that don't have a
    data dependency on primary args parsing, can alter how the primary
    args are handled. In practice this means verity_parse_opt_args() gets
    called twice. First with the new 'only_modifier_opts' arg set to true,
    then again with it set to false _after_ parsing all primary args.
    
    This allows the v->use_tasklet flag to be properly set and then used
    when verity_ctr() parses the primary args and then calls
    crypto_alloc_ahash() with CRYPTO_ALG_ASYNC conditionally set.
    Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
    df326e7a
dm-verity-target.c 34.7 KB