• Joe Thornber's avatar
    dm thin metadata: try to avoid ever aborting transactions · 1484d4ff
    Joe Thornber authored
    [ Upstream commit 3ab91828
    
     ]
    
    Committing a transaction can consume some metadata of it's own, we now
    reserve a small amount of metadata to cover this.  Free metadata
    reported by the kernel will not include this reserve.
    
    If any of the reserve has been used after a commit we enter a new
    internal state PM_OUT_OF_METADATA_SPACE.  This is reported as
    PM_READ_ONLY, so no userland changes are needed.  If the metadata
    device is resized the pool will move back to PM_WRITE.
    
    These changes mean we never need to abort and rollback a transaction due
    to running out of metadata space.  This is particularly important
    because there have been a handful of reports of data corruption against
    DM thin-provisioning that can all be attributed to the thin-pool having
    ran out of metadata space.
    Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Signed-off-by: default avatarSasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1484d4ff
dm-thin.c 111 KB