From 9e41cecf71312b67dee4aab6c358c6fbc10973cb Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 9 Jul 2019 08:12:04 -0500 Subject: [PATCH] osd: do not hold osd_lock while queueing stray purged_snaps Signed-off-by: Sage Weil --- src/osd/OSD.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 3686f32a6498d..da450ab70002f 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6646,10 +6646,6 @@ void OSD::scrub_purged_snaps() clog->debug() << "purged_snaps scrub starts"; osd_lock.unlock(); s.run(); - osd_lock.lock(); - if (is_stopping()) { - return; - } if (s.stray.size()) { clog->debug() << "purged_snaps scrub find " << s.stray.size() << " strays"; } else { @@ -6681,6 +6677,10 @@ void OSD::scrub_purged_snaps() pg->queue_snap_retrim(snap); pg->unlock(); } + osd_lock.Lock(); + if (is_stopping()) { + return; + } dout(10) << __func__ << " done queueing pgs, updating superblock" << dendl; ObjectStore::Transaction t; superblock.last_purged_snaps_scrub = ceph_clock_now(); -- 2.39.5