• Joe Thornber's avatar
    dm cache: fix race when issuing a POLICY_REPLACE operation · fb4100ae
    Joe Thornber authored
    There is a race between a policy deciding to replace a cache entry,
    the core target writing back any dirty data from this block, and other
    IO threads doing IO to the same block.
    
    This sort of problem is avoided most of the time by the core target
    grabbing a bio prison cell before making the request to the policy.
    But for a demotion the core target doesn't know which block will be
    demoted, so can't do this in advance.
    
    Fix this demotion race by introducing a callback to the policy interface
    that allows the policy to grab the cell on behalf of the core target.
    Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Cc: stable@vger.kernel.org
    fb4100ae
dm-cache-policy-cleaner.c 10.1 KB