]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: wait for laggy pgs without osd_lock in handle_osd_map
authorSage Weil <sage@redhat.com>
Fri, 3 Aug 2018 15:45:51 +0000 (10:45 -0500)
committerSage Weil <sage@redhat.com>
Fri, 7 Sep 2018 17:09:05 +0000 (12:09 -0500)
commit62a208b42384be3a8710106d96b41b17e098af7c
treec8ba9527a68740e912d9123d9b6b1c1570ccd8ce
parent47d627736a7a199c6bf66e1117029ce2b77b404d
osd: wait for laggy pgs without osd_lock in handle_osd_map

We can't hold osd_lock while blocking because other objectstore completions
need to take osd_lock (e.g., _committed_osd_maps), and those objectstore
completions need to complete in order to finish_splits.  Move the blocking
to the top before we establish any local state in this stack frame since
both the public and cluster dispatchers may race in handle_osd_map and
we are dropping and retaking osd_lock.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc