]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mon/MonClient: set configs via finisher 21984/head
authorSage Weil <sage@redhat.com>
Mon, 14 May 2018 17:56:59 +0000 (12:56 -0500)
committerSage Weil <sage@redhat.com>
Mon, 14 May 2018 18:10:18 +0000 (13:10 -0500)
commit02a92360171240be9a66d1939c019b3427ed825d
tree795fea8316ede7701deb55128caf07d3314454af
parent7dbba9e54282e0a4c3000eb0c1a66e346c7eab98
mon/MonClient: set configs via finisher

The config observers may want to take locks that are ordered relative
to monc_lock.

We could simply drop monc_lock for this call, but that would implicitly
rely on a single-threaded dispatch to avoid having two incoming MConfig
messages get reordered.  Explicitly putting it on a finisher is safer.
Note that we adjust the get_monmap_and_config() to start, drain, and stop
the finisher to ensure we have incoming config processed and applied
before returning.

Fixes: http://tracker.ceph.com/issues/24118
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MonClient.cc