]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: ensure image cannot be closed until in-flight IO callbacks complete
authorJason Dillaman <dillaman@redhat.com>
Tue, 28 Jul 2020 13:07:49 +0000 (09:07 -0400)
committerJason Dillaman <dillaman@redhat.com>
Tue, 28 Jul 2020 13:07:49 +0000 (09:07 -0400)
commit0d64e31c191f04b10b5318eb6d4db9dd83b2d166
tree163cd1064c0172015ca29066b7bc10b3f34620c0
parent2a25db1cf14a8dc9dfa0505ae3ade86580580bde
librbd: ensure image cannot be closed until in-flight IO callbacks complete

If a librbd client attempts to close the image while it still has in-flight IO
pending, it's possible for the AsyncOperation tracker which prevents the image
from being closed to be completed before the actual AioCompletion callback
fires. This can result in the now destructed ImageCtx being de-referenced by
the AioCompletion.

Fixes: https://tracker.ceph.com/issues/46737
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/io/AioCompletion.cc