]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
librbd: prevent concurrent AIO callbacks to external clients
authorJason Dillaman <dillaman@redhat.com>
Tue, 25 Jun 2019 14:15:25 +0000 (10:15 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 26 Jun 2019 13:07:22 +0000 (09:07 -0400)
commit5d6134fb359f752eca7f6a5213a52a565255e89b
treee14af9d27f77789227974877484ddb1a04c97178
parent9dd49d7435e064fbf281d713c254882066d0f853
librbd: prevent concurrent AIO callbacks to external clients

With the various threads and conditional IO paths within librbd, it was
possible for external AIO callbacks to be concurrently executed from
different librbd threads. These callbacks should be serialized to reduce
the unexpected potential for data corruption.

Fixes: http://tracker.ceph.com/issues/40417
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/librbd/ImageCtx.cc
src/librbd/ImageCtx.h
src/librbd/internal.cc
src/librbd/io/AioCompletion.cc
src/librbd/io/AioCompletion.h
src/librbd/librbd.cc