From ac22c78624239837297467901e756448e791518a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 28 Jan 2009 09:25:37 -0800 Subject: [PATCH] mds: fix open file rejounal in try_to_expire We were invalidating the iterator. --- src/mds/journal.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index c73dcff56909..d180f7ac11e2 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -155,8 +155,10 @@ C_Gather *LogSegment::try_to_expire(MDS *mds) assert(!mds->mdlog->is_capped()); // hmm FIXME EOpen *le = 0; LogSegment *ls = mds->mdlog->get_current_segment(); - for (xlist::iterator p = open_files.begin(); !p.end(); ++p) { + xlist::iterator p = open_files.begin(); + while (!p.end()) { CInode *in = *p; + ++p; dout(20) << "try_to_expire requeueing open file " << *in << dendl; assert(in->is_any_caps()); if (!le) le = new EOpen(mds->mdlog); -- 2.47.3