From 2e1b02bf0117995932dc5723c70ddec628d375c2 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 19 Feb 2013 22:20:47 -0800 Subject: [PATCH] osd: lock pg in build_past_intervals_parallel() Methods called by write_if_dirty() (get_osdmap()) assert that the pg is locked. Backport: bobtail Signed-off-by: Sage Weil Reviewed-by: Samuel Just --- src/osd/OSD.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index d5f2b2299a434..19e016f93a5c0 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1743,9 +1743,11 @@ void OSD::build_past_intervals_parallel() int num = 0; for (map::iterator i = pis.begin(); i != pis.end(); ++i) { PG *pg = i->first; + pg->lock(); pg->dirty_big_info = true; pg->dirty_info = true; pg->write_if_dirty(t); + pg->unlock(); // don't let the transaction get too big if (++num >= g_conf->osd_target_transaction_size) { -- 2.39.5