• Ilya Dryomov's avatar
    rbd: get snapshot context after exclusive lock is ensured to be held · 870611e4
    Ilya Dryomov authored
    Move capturing the snapshot context into the image request state
    machine, after exclusive lock is ensured to be held for the duration of
    dealing with the image request.  This is needed to ensure correctness
    of fast-diff states (OBJECT_EXISTS vs OBJECT_EXISTS_CLEAN) and object
    deltas computed based off of them.  Otherwise the object map that is
    forked for the snapshot isn't guaranteed to accurately reflect the
    contents of the snapshot when the snapshot is taken under I/O.  This
    breaks differential backup and snapshot-based mirroring use cases with
    fast-diff enabled: since some object deltas may be incomplete, the
    destination image may get corrupted.
    
    Cc: stable@vger.kernel.org
    Link: https://tracker.ceph.com/issues/61472Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    Reviewed-by: default avatarDongsheng Yang <dongsheng.yang@easystack.cn>
    870611e4
rbd.c 184 KB