]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: invalidate cache outside cache callback context
authorJason Dillaman <dillaman@redhat.com>
Tue, 23 Jun 2015 18:18:20 +0000 (14:18 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 29 Jul 2015 17:41:36 +0000 (13:41 -0400)
commitd4eb7bd63a5e46b790bad7001d2873c5c238cc90
tree8771ba144f873ceeb4f000a8530b97e71b8121ab
parente9718201c6ed785c61077797a74ffda7e0438fb9
librbd: invalidate cache outside cache callback context

When shrinking an image, it's possible that the op flush callback
will be from within the cache callback context.  This would result
in a deadlock when attempting to re-lock the cache lock in order to
invalidate the cache.

Fixes: #11743
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 726d699b7790c7e371279281ab32cd3aeb8ece7b)
src/librbd/AsyncRequest.cc
src/librbd/AsyncRequest.h
src/librbd/AsyncResizeRequest.cc