]> 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>
Thu, 4 Oct 2018 12:04:21 +0000 (08:04 -0400)
commit82c02fb0cbb510a653dbcc1b51f97359800b8946
treeae0518075489a8f83d10dc1a36650347716e2a60
parentb6615582ade1a6201a933fcf825289fa1f2f4cb9
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>
(cherry picked from commit 5a1cb469879157297ab456261f9335d8b855684f)

Conflicts:
src/librbd/ObjectMap.cc: trivial resolution
src/librbd/ObjectMap.h: trivial resolution
src/librbd/io/CopyupRequest.cc: trivial resolution
src/test/librbd/deep_copy/test_mock_ObjectCopyRequest.cc: trivial resolution
src/test/librbd/test_mock_ObjectMap.cc: trivial resolution
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