]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd: do not invalidate object map if update races with copyup
authorJason Dillaman <dillaman@redhat.com>
Mon, 24 Sep 2018 18:45:09 +0000 (14:45 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 26 Sep 2018 12:34:32 +0000 (08:34 -0400)
commit5a1cb469879157297ab456261f9335d8b855684f
tree7ff9c2c6ee28ab0a359a1f4af1a410d9181495ce
parent9a01c3ae10889b11ebea25287591d49a01920a30
librbd: do not invalidate object map if update races with copyup

The copyup state machine needs to iterate over all object maps to update
the existence for the object. If an snapshot is being removed concurrently,
it's possible to invalidate the object map for the image.

Fixes: http://tracker.ceph.com/issues/24516
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
14 files changed:
src/librbd/ObjectMap.cc
src/librbd/ObjectMap.h
src/librbd/deep_copy/ObjectCopyRequest.cc
src/librbd/io/CopyupRequest.cc
src/librbd/io/ObjectRequest.cc
src/librbd/object_map/UpdateRequest.cc
src/librbd/object_map/UpdateRequest.h
src/librbd/operation/TrimRequest.cc
src/test/librbd/deep_copy/test_mock_ObjectCopyRequest.cc
src/test/librbd/io/test_mock_ObjectRequest.cc
src/test/librbd/mock/MockObjectMap.h
src/test/librbd/object_map/test_mock_UpdateRequest.cc
src/test/librbd/operation/test_mock_TrimRequest.cc
src/test/librbd/test_mock_ObjectMap.cc