]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson: use make_interruptible, coroutine, and RAII releaser for recover_object_with...
authorSamuel Just <sjust@redhat.com>
Tue, 15 Apr 2025 22:50:57 +0000 (15:50 -0700)
committerSamuel Just <sjust@redhat.com>
Mon, 21 Apr 2025 16:30:28 +0000 (09:30 -0700)
commitf99746aa33e31dc02c6c9b1080db7eca89cc5111
tree4ceceb4de809295c6070e8d2f831471cffb9e5ad
parentb3e55c48564d616ebedd3e0555627bb917b580bc
crimson: use make_interruptible, coroutine, and RAII releaser for recover_object_with_throttle

791772f1c used with_throttle here in a way which caused
then_interruptible in PGRecovery::recover_object to be called outside of
an interruptible context.

Instead of using a wrapper taking a lambda, rephrase as an RAII releaser
suitable for use in a coroutine.  This avoids needing to structure
with_throttle to deal correctly with both interruptible and
non-interruptible contexts.

Fixes: https://tracker.ceph.com/issues/70939
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/osd/osd_operation.h
src/crimson/osd/pg_recovery.cc
src/crimson/osd/pg_recovery.h
src/crimson/osd/shard_services.h