From: Tang Junhui Date: Thu, 22 Nov 2018 12:21:46 +0000 (+0800) Subject: mds: do not call Journaler::_trim twice X-Git-Tag: v14.1.0~634^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a509b5719bc44a63d7664a1b019adca6a3993f19;p=ceph.git mds: do not call Journaler::_trim twice Journaler::_trim is called in the routine: PurgeQueue::_execute_item ==>Journaler::write_head ==>Journaler::_finish_write_head ==>Journaler::_trim so do not register callback in PurgeQueue::_execute_item to call Journaler::_trim again. Signed-off-by: Tang Junhui Fixes: http://tracker.ceph.com/issues/37566 --- diff --git a/src/mds/PurgeQueue.cc b/src/mds/PurgeQueue.cc index 31b1c09777f..d417ea5ca7a 100644 --- a/src/mds/PurgeQueue.cc +++ b/src/mds/PurgeQueue.cc @@ -519,9 +519,7 @@ void PurgeQueue::_execute_item( // expire_pos doesn't fall too far behind our progress when consuming // a very long queue. if (in_flight.empty() || journaler.write_head_needed()) { - journaler.write_head(new FunctionContext([this](int r){ - journaler.trim(); - })); + journaler.write_head(nullptr); } }), &finisher));