From 207a1bdca7b9565c2beb8095a633c5ff2e1c4ab3 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Tue, 3 Aug 2010 15:21:42 -0700 Subject: [PATCH] osd: Unlock osd_lock in _dispatch before locking handle_map_lock --- src/osd/OSD.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index c52a8b713f055..aaec8bc2f1603 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1946,6 +1946,7 @@ void OSD::_dispatch(Message *m) Session *session = NULL; if (handle_map_lock) { //can't dispatch while map is being updated! + osd_lock.Unlock(); handle_map_lock->Lock(); if (map_in_progress) { dout(25) << "waiting for handle_osd_map to complete before dispatching" << dendl; @@ -1953,6 +1954,7 @@ void OSD::_dispatch(Message *m) map_cond.Wait(*handle_map_lock); } handle_map_lock->Unlock(); + osd_lock.Lock(); } switch (m->get_type()) { -- 2.39.5