]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: check if adjacent clones are unreadable when rollback is called 53222/head
authorMyoungwon Oh <myoungwon.oh@samsung.com>
Wed, 30 Aug 2023 07:41:43 +0000 (16:41 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Wed, 10 Jan 2024 06:34:03 +0000 (06:34 +0000)
commitaeeee3f2becae65d24274c46638a38bdafe7120e
treea961dccabbf11a7a20bf560af38863689d73d8fe
parentfb6cce24b5399d8b8da9cd6e86adf6ff10b20dad
osd: check if adjacent clones are unreadable when rollback is called

In rollback, if the head object is not manfest and the rollback_to is manifest,
the head object becomes the manifest object. At this point,
we need to check adjacent clonces to the head object to calculate
correct reference count for deduped chunks because the head object is now manifest.
Plus, in the meantime of the waiting for recovery, subsequent requests should be blocked
to ensure transaction order.

To fix the issue, this commit is to wait until the adjacent
clones are readable and delay future incoming ops.

fixes: https://tracker.ceph.com/issues/62167

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/osd/PG.h
src/osd/PrimaryLogPG.cc
src/osd/PrimaryLogPG.h