From 4eab5b7f7f1a39f5626c0045bc41444ab8e7f3b5 Mon Sep 17 00:00:00 2001 From: sageweil Date: Fri, 24 Aug 2007 16:37:50 +0000 Subject: [PATCH] fixed trimming race issue in journaler git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1673 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/osdc/Journaler.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/trunk/ceph/osdc/Journaler.cc b/trunk/ceph/osdc/Journaler.cc index 2b0a62b5d9df9..73394bea64993 100644 --- a/trunk/ceph/osdc/Journaler.cc +++ b/trunk/ceph/osdc/Journaler.cc @@ -208,8 +208,8 @@ void Journaler::_finish_flush(int r, off_t start) if (logger) { utime_t lat = g_clock.now(); lat -= pending_flush[start]; - logger->finc("lsum", lat); - logger->inc("lnum"); + logger->finc("jlsum", lat); + logger->inc("jlnum"); } pending_flush.erase(start); @@ -595,6 +595,12 @@ void Journaler::trim() << trimmed_pos << "/" << trimming_pos << endl; return; } + + if (trimming_pos > trimmed_pos) { + dout(10) << "trim already trimming atm, try again later. trimmed/trimming is " + << trimmed_pos << "/" << trimming_pos << endl; + return; + } // trim assert(trim_to <= write_pos); -- 2.39.5