]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd/io: track object non-existence when computing snapshot deltas
authorJason Dillaman <dillaman@redhat.com>
Wed, 3 Feb 2021 18:21:34 +0000 (13:21 -0500)
committerJason Dillaman <dillaman@redhat.com>
Thu, 11 Feb 2021 18:51:57 +0000 (13:51 -0500)
commit059dccdf93f53f15f69a675aab02fdd64a19cff8
tree6fd6468ff2123972a75f40097b743de75f1a6b1e
parent0009268b45e1ce29fb88842c3c1eab4f95e91d93
librbd/io: track object non-existence when computing snapshot deltas

Re-use the existing DNE state to track whether or not the object
already exists when computing snapshot deltas from an arbitrary
set of snapshots. Previously, the non-existence of the object was
only computed for snap id 0 for tracking whiteouts. In a future
commit, the deep-copy object-copy state machine will be able to
properly update the object-map state to indicate exists clean
vs non-existent state.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 89d2a13db67945bfd7c6d6fe79584f00574b8ba3)
src/librbd/api/DiffIterate.cc
src/librbd/deep_copy/ObjectCopyRequest.cc
src/librbd/io/ObjectRequest.cc
src/librbd/io/ObjectRequest.h
src/test/librbd/io/test_mock_ObjectRequest.cc