]> git-server-git.apps.pok.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 15:33:32 +0000 (16:33 +0100)
commit9f7f52a88eaf5d67065909c69d1078911907f233
treedfbcadbe080f90cc069d07ff1c8b2a6e937e6c01
parent6df7df7b5bdf30c294a83dd14f6bf43ab5ccff75
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)

Conflicts:
src/test/librbd/mock/MockObjectMap.h [ commit 87459c23aa05
  ("librbd,rbd_mirror: do not include RWLock.h unless it is
  used") not in pacific ]
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