]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PeeringState: Introduce is_missing_any_head_or_clone_of
authorMatan Breizman <mbreizma@redhat.com>
Sun, 30 Mar 2025 10:20:27 +0000 (10:20 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Wed, 2 Apr 2025 10:28:53 +0000 (10:28 +0000)
commitf8ee21ba7b5413be9b6373970757a4d6afdb8779
tree5d4a15aab22b718138773535af35219ba7ec730a
parente178f9b0640a0241ba2f3caf11575b9f6b6b6d4d
osd/PeeringState: Introduce is_missing_any_head_or_clone_of

When checking if a client requested object is missing, we must first
obtain the actual (resolved) object from the OSD prespective. See how
Crimson handles this logic with resolve_oid (Classic does the same).
For us to resolve an object we *must* obtain its object context.

There are some scenarios (e.g serving replicated reads) where checking
if the object (head or clone) is missing prior to obtaining the obc
could be useful to avoid further lookups or unnecessarily complicated/
bug-prone pathways.

With this function, we can check if any head or clone of this object
is missing, without resolving the (client) requested object.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/osd/PeeringState.h
src/osd/osd_types.h