]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd/object_map: potentially use in-memory object map in DiffRequest
authorIlya Dryomov <idryomov@gmail.com>
Sat, 6 Jan 2024 16:05:39 +0000 (17:05 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Sat, 20 Jan 2024 18:00:24 +0000 (19:00 +0100)
commitf5b2af58a1ae931a8e6497e133e3b079e9ebccaa
treef2f0886dca602af679c9b9660beee070d7e1826b
parent07c2b56306df5ca82837aa86c21f4d92de78aeae
librbd/object_map: potentially use in-memory object map in DiffRequest

If the object map for the end version is around (already loaded in
memory, either due to the end version being a snapshot or due to
exclusive lock being held), use it to run diff-iterate against the
beginning of time.  Since it's the only object map needed in that
case, such calls would be satisfied locally.

Fixes: https://tracker.ceph.com/issues/63341
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 0c4bb58c900efa2356ea8526d3432b2922787afa)
src/librbd/ObjectMap.h
src/librbd/object_map/DiffRequest.cc
src/test/librbd/mock/MockObjectMap.h
src/test/librbd/object_map/test_mock_DiffRequest.cc