]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd/object_map: don't resize object map in handle_load_object_map()
authorIlya Dryomov <idryomov@gmail.com>
Thu, 4 Jan 2024 10:39:20 +0000 (11:39 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Sat, 20 Jan 2024 15:33:32 +0000 (16:33 +0100)
commit02b29dd21064279fced1334747092458e4231503
treeffffec11f981611af19a66945b1eefe8b5065600
parent3b90236b7bdfb81490dec1fa265c3cd96c2c7891
librbd/object_map: don't resize object map in handle_load_object_map()

Currently it's done in two cases:

- if the loaded object map is larger than expected based on byte size,
  it's truncated to expected number of objects
- in case of deep-copy, if the loaded object map is smaller than diff
  state, it's expanded to get "track the largest of all versions in the
  set" semantics

Both of these cases can be easily dealt with without modifying the
object map.  Being able to process a const object map is needed for
working on in-memory object map which is external to DiffRequest.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 275a299cd48d2ddac36608d6633a6b79c8927351)
src/librbd/object_map/DiffRequest.cc
src/test/librbd/object_map/test_mock_DiffRequest.cc