]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: do not complete AIO callbacks within caller's thread context
authorJason Dillaman <dillaman@redhat.com>
Fri, 4 Dec 2015 15:25:24 +0000 (10:25 -0500)
committerJason Dillaman <dillaman@redhat.com>
Fri, 4 Dec 2015 15:25:24 +0000 (10:25 -0500)
commitfde9f785cd681c7b31a3a791deacbfc04284971a
tree06d6ef4a867783ffb2ce227b144670447f805516
parent1fffb25e29e06bffbb7948d1c541000efc6fd5ab
librbd: do not complete AIO callbacks within caller's thread context

Avoid rare, racy issues when individual requests associated with an AIO
completion can complete prior to marking the completion as ready-to-fire.
Pre-calculate the expected number of individual requests to avoid the
potential re-entrant callback.

Fixes: #13969
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/AioCompletion.cc
src/librbd/AioCompletion.h
src/librbd/AioImageRequest.cc
src/librbd/AioImageRequest.h